diff options
Diffstat (limited to 'src/web/_model/apps')
-rw-r--r-- | src/web/_model/apps/people.php | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/src/web/_model/apps/people.php b/src/web/_model/apps/people.php index 1bb110f..ade59d3 100644 --- a/src/web/_model/apps/people.php +++ b/src/web/_model/apps/people.php @@ -7,40 +7,32 @@ class People_model extends Model { parent::__construct($load); $this->request_model = $this->load->model('request'); } - - private function get_filted_query($select) { - $filter_username = $this->request_model->get_str('filter_username', FALSE); - $filter_fisrt_name = $this->request_model->get_str('filter_first_name', FALSE); - $filter_last_name = $this->request_model->get_str('filter_last_name', FALSE); - $filter_email = $this->request_model->get_str('filter_email', FALSE); - $max = $this->request_model->get_int('max', FALSE); + /** + * @param mixed $select + */ + private function get_filted_query($select): DatabaseQuery { + $filter_type = $this->request_model->get_str('filter', FALSE); + $filter_uid = $this->request_model->get_int('uid', FALSE); + $max = $this->request_model->get_int('max', FALSE); $query = $this->db ->select($select) ->from('api.user u'); - if ($filter_username) { - $query = $query - ->where('u.username') - ->like('%' . $filter_username . '%'); - } + if ($filter_type && $filter_uid) { + switch ($filter_type) { + case 'follower': { + $query = $query + ->join('admin.follow f', 'f.follower_id = u.id AND f.followee_id', 'INNER') + ->eq($filter_uid); + } break; - if ($filter_fisrt_name) { - $query = $query - ->where('u.first_name') - ->like('%'. $filter_fisrt_name . '%'); - } - - if ($filter_last_name) { - $query = $query - ->where('u.last_name') - ->like('%' . $filter_last_name . '%'); - } - - if ($filter_email) { - $query = $query - ->where('u.email') - ->like('%' . $filter_email . '%'); + case 'followee': { + $query = $query + ->join('admin.follow f', 'f.followee_id = u.id AND f.follower_id', 'INNER') + ->eq($filter_uid); + } break; + } } if ($max) { @@ -52,12 +44,15 @@ class People_model extends Model { return $query; } - public function get_users(): array { + /** + * @return array<string,mixed> + */ + public function get_users(): array { $page = $this->request_model->get_int('page', 0); $page_size = 24; $offset = $page_size * $page; - $users = $this->get_filted_query('*') + $users = $this->get_filted_query('u.*') ->order_by('u.id', 'DESC') ->offset($offset) ->limit($page_size) @@ -72,11 +67,16 @@ class People_model extends Model { $max = max($max, $user['id']); } + $filter_type = $this->request_model->get_str('filter', FALSE); + $filter_uid = $this->request_model->get_int('uid', FALSE); + return array( 'users' => $users, 'count' => $count, 'page_size' => $page_size, - 'max_id' => $max + 'max_id' => $max, + 'filter_type' => $filter_type || '', + 'filter_uid' => $filter_uid || '' ); } |