2019-10-29 14:57:13 +01:00
|
|
|
<?php
|
2019-10-30 00:30:39 +01:00
|
|
|
|
|
|
|
/*
|
2019-11-10 17:48:54 +01:00
|
|
|
* This file is part of RaspiSMS.
|
2019-10-30 00:30:39 +01:00
|
|
|
*
|
2019-11-10 17:48:54 +01:00
|
|
|
* (c) Pierre-Lin Bonnemaison <plebwebsas@gmail.com>
|
2019-10-30 00:30:39 +01:00
|
|
|
*
|
2019-11-10 17:48:54 +01:00
|
|
|
* This source file is subject to the GPL-3.0 license that is bundled
|
2019-10-30 00:30:39 +01:00
|
|
|
* with this source code in the file LICENSE.
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace models;
|
2019-10-29 18:33:49 +01:00
|
|
|
|
2019-11-13 03:24:22 +01:00
|
|
|
class Group extends StandardModel
|
2019-10-29 14:57:13 +01:00
|
|
|
{
|
|
|
|
/**
|
2019-11-13 03:24:22 +01:00
|
|
|
* Return table name
|
|
|
|
* @return string
|
2019-10-29 14:57:13 +01:00
|
|
|
*/
|
2019-11-13 03:24:22 +01:00
|
|
|
protected function get_table_name() : string { return 'group'; }
|
2019-10-29 14:57:13 +01:00
|
|
|
|
2019-10-30 00:30:39 +01:00
|
|
|
|
2019-10-29 14:57:13 +01:00
|
|
|
/**
|
2019-11-13 03:24:22 +01:00
|
|
|
* Return a group by his name for a user
|
|
|
|
* @param int $id_user : User id
|
|
|
|
* @param string $name : Group name
|
|
|
|
* @return array
|
2019-10-29 14:57:13 +01:00
|
|
|
*/
|
2019-11-13 03:24:22 +01:00
|
|
|
public function get_by_name_for_user (int $id_user, string $name)
|
2019-10-29 14:57:13 +01:00
|
|
|
{
|
2019-11-13 03:24:22 +01:00
|
|
|
return $this->_select_one($this->get_table_name(), ['id_user' => $id_user, 'name' => $name]);
|
2019-10-29 14:57:13 +01:00
|
|
|
}
|
|
|
|
|
2019-11-13 03:24:22 +01:00
|
|
|
|
2019-10-29 14:57:13 +01:00
|
|
|
/**
|
2019-11-13 03:24:22 +01:00
|
|
|
* Delete relations between group and contacts for a group
|
|
|
|
* @param int $id_group : Group id
|
|
|
|
* @return int : Number of deleted rows
|
2019-10-29 14:57:13 +01:00
|
|
|
*/
|
2019-11-13 03:24:22 +01:00
|
|
|
public function delete_group_contact_relations (int $id_group)
|
2019-10-29 14:57:13 +01:00
|
|
|
{
|
2019-11-13 03:24:22 +01:00
|
|
|
return $this->delete('group_contact', ['id_group' => $id_group]);
|
2019-10-29 14:57:13 +01:00
|
|
|
}
|
2019-10-30 00:30:39 +01:00
|
|
|
|
2019-10-29 14:57:13 +01:00
|
|
|
|
|
|
|
/**
|
2019-11-13 03:24:22 +01:00
|
|
|
* Insert a relation between a group and a contact
|
|
|
|
* @param int $id_group : Group id
|
|
|
|
* @param int $id_contact : Contact id
|
|
|
|
* @return mixed (bool|int) : False on error, new row id else
|
2019-10-29 14:57:13 +01:00
|
|
|
*/
|
2019-11-13 03:24:22 +01:00
|
|
|
public function insert_group_contact_relation (int $id_group, int $id_contact)
|
2019-10-29 14:57:13 +01:00
|
|
|
{
|
2019-11-13 03:24:22 +01:00
|
|
|
$success = (bool) $this->_insert('group_contact', ['id_group' => $id_group, 'id_contact' => $id_contact]);
|
|
|
|
return ($success ? $this->_last_id() : false);
|
2019-10-29 14:57:13 +01:00
|
|
|
}
|
2019-10-30 00:30:39 +01:00
|
|
|
|
|
|
|
|
2019-10-29 14:57:13 +01:00
|
|
|
/**
|
2019-11-13 03:24:22 +01:00
|
|
|
* Get groups contacts
|
|
|
|
* @param int $id_group : Group id
|
|
|
|
* @return array : Contacts of the group
|
2019-10-29 18:33:49 +01:00
|
|
|
*/
|
2019-11-13 03:24:22 +01:00
|
|
|
public function get_contacts (int $id_group)
|
2019-10-29 14:57:13 +01:00
|
|
|
{
|
2019-10-30 00:30:39 +01:00
|
|
|
$query = '
|
2019-10-29 14:57:13 +01:00
|
|
|
SELECT *
|
2019-11-10 00:39:34 +01:00
|
|
|
FROM `contact`
|
2019-11-13 03:24:22 +01:00
|
|
|
WHERE id IN (SELECT id_contact FROM `group_contact` WHERE id_group = :id_group)
|
2019-10-30 00:30:39 +01:00
|
|
|
';
|
2019-10-29 14:57:13 +01:00
|
|
|
|
2019-11-13 03:24:22 +01:00
|
|
|
$params = ['id_group' => $id_group];
|
2019-10-29 14:57:13 +01:00
|
|
|
|
2019-10-29 18:33:49 +01:00
|
|
|
return $this->_run_query($query, $params);
|
2019-10-29 14:57:13 +01:00
|
|
|
}
|
|
|
|
}
|