mirror of
https://github.com/RaspbianFrance/raspisms.git
synced 2025-06-07 15:16:27 +02:00
Finish add conditional groups
This commit is contained in:
parent
f4bbfa0152
commit
47b26e3cd2
15 changed files with 273 additions and 67 deletions
|
@ -109,26 +109,18 @@ namespace controllers\internals;
|
|||
* Gets the user's contacts that respects a condition
|
||||
* @param int $id_user : User id
|
||||
* @param string $condition : Condition string to verify
|
||||
* @return bool
|
||||
* @return array
|
||||
*/
|
||||
public function get_contacts_for_condition_and_user (int $id_user, string $condition) : bool
|
||||
public function get_contacts_for_condition_and_user (int $id_user, string $condition) : array
|
||||
{
|
||||
$internal_contacts = new Contacts($this->bdd);
|
||||
$internal_contacts = new Contact($this->bdd);
|
||||
$contacts = $internal_contacts->gets_for_user($id_user);
|
||||
|
||||
$ruler = new Ruler();
|
||||
|
||||
foreach ($contacts as $key => $contact)
|
||||
{
|
||||
if ($contact['datas'] != null)
|
||||
{
|
||||
$contact['datas'] = json_decode($contact['datas']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$contact['datas'] = new \stdClass();
|
||||
}
|
||||
|
||||
$contact['datas'] = json_decode($contact['datas']);
|
||||
$contact = (object) $contact;
|
||||
|
||||
$datas = ['contact' => $contact];
|
||||
|
|
|
@ -68,7 +68,7 @@ namespace controllers\internals;
|
|||
* @param string $datas : Contact datas
|
||||
* @return mixed bool|int : False if cannot create contact, id of the new contact else
|
||||
*/
|
||||
public function create($id_user, $number, $name, ?string $datas = null)
|
||||
public function create($id_user, $number, $name, $datas)
|
||||
{
|
||||
$contact = [
|
||||
'id_user' => $id_user,
|
||||
|
@ -99,7 +99,7 @@ namespace controllers\internals;
|
|||
* @param ?string $datas : Contact datas
|
||||
* @return int : number of modified rows
|
||||
*/
|
||||
public function update_for_user(int $id_user, int $id, string $number, string $name, ?string $datas)
|
||||
public function update_for_user(int $id_user, int $id, string $number, string $name, string $datas)
|
||||
{
|
||||
$contact = [
|
||||
'number' => $number,
|
||||
|
|
|
@ -47,8 +47,6 @@ use Symfony\Component\ExpressionLanguage\ExpressionFunction;
|
|||
}
|
||||
catch (\Exception $e)
|
||||
{
|
||||
echo "Error : ";
|
||||
echo $e->getMessage();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,9 +35,10 @@ namespace controllers\internals;
|
|||
* @param array $numbers : Numbers to send message to
|
||||
* @param array $contacts_ids : Contact ids to send message to
|
||||
* @param array $groups_ids : Group ids to send message to
|
||||
* @param array $conditional_group_ids : Conditional Groups ids to send message to
|
||||
* @return bool : false on error, new id on success
|
||||
*/
|
||||
public function create (int $id_user, $at, string $text, ?string $origin = null, bool $flash = false, array $numbers = [], array $contacts_ids = [], array $groups_ids = [])
|
||||
public function create (int $id_user, $at, string $text, ?string $origin = null, bool $flash = false, array $numbers = [], array $contacts_ids = [], array $groups_ids = [], array $conditional_group_ids = [])
|
||||
{
|
||||
$scheduled = [
|
||||
'id_user' => $id_user,
|
||||
|
@ -96,6 +97,18 @@ namespace controllers\internals;
|
|||
|
||||
$this->get_model()->insert_scheduled_group_relation($id_scheduled, $group_id);
|
||||
}
|
||||
|
||||
$internal_conditional_group = new ConditionalGroup($this->bdd);
|
||||
foreach ($conditional_group_ids as $conditional_group_id)
|
||||
{
|
||||
$find_group = $internal_conditional_group->get_for_user($id_user, $conditional_group_id);
|
||||
if (!$find_group)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$this->get_model()->insert_scheduled_conditional_group_relation($id_scheduled, $conditional_group_id);
|
||||
}
|
||||
|
||||
return $id_scheduled;
|
||||
}
|
||||
|
@ -112,9 +125,10 @@ namespace controllers\internals;
|
|||
* @param array $numbers : Numbers to send message to
|
||||
* @param array $contacts_ids : Contact ids to send message to
|
||||
* @param array $groups_ids : Group ids to send message to
|
||||
* @param array $conditional_group_ids : Conditional Groups ids to send message to
|
||||
* @return bool : false on error, new id on success
|
||||
*/
|
||||
public function update_for_user (int $id_user, int $id_scheduled, $at, string $text, ?string $origin = null, bool $flash = false, array $numbers = [], array $contacts_ids = [], array $groups_ids = [])
|
||||
public function update_for_user (int $id_user, int $id_scheduled, $at, string $text, ?string $origin = null, bool $flash = false, array $numbers = [], array $contacts_ids = [], array $groups_ids = [], array $conditional_group_ids = [])
|
||||
{
|
||||
$scheduled = [
|
||||
'id_user' => $id_user,
|
||||
|
@ -141,6 +155,7 @@ namespace controllers\internals;
|
|||
$this->get_model()->delete_scheduled_numbers($id_scheduled);
|
||||
$this->get_model()->delete_scheduled_contact_relations($id_scheduled);
|
||||
$this->get_model()->delete_scheduled_group_relations($id_scheduled);
|
||||
$this->get_model()->delete_scheduled_conditional_group_relations($id_scheduled);
|
||||
|
||||
foreach ($numbers as $number)
|
||||
{
|
||||
|
@ -170,6 +185,18 @@ namespace controllers\internals;
|
|||
|
||||
$this->get_model()->insert_scheduled_group_relation($id_scheduled, $group_id);
|
||||
}
|
||||
|
||||
$internal_conditional_group = new ConditionalGroup($this->bdd);
|
||||
foreach ($conditional_group_ids as $conditional_group_id)
|
||||
{
|
||||
$find_group = $internal_conditional_group->get_for_user($id_user, $conditional_group_id);
|
||||
if (!$find_group)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$this->get_model()->insert_scheduled_conditional_group_relation($id_scheduled, $conditional_group_id);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -219,4 +246,15 @@ namespace controllers\internals;
|
|||
{
|
||||
return $this->get_model()->get_groups($id_scheduled);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return conditional groups for a scheduled message
|
||||
* @param int $id_scheduled : Scheduled id
|
||||
* @return array
|
||||
*/
|
||||
public function get_conditional_groups(int $id_scheduled)
|
||||
{
|
||||
return $this->get_model()->get_conditional_groups($id_scheduled);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue