summaryrefslogtreecommitdiff
path: root/src/web/_model/apps/people.php
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2024-04-05 10:46:09 -0400
committerFreya Murphy <freya@freyacat.org>2024-04-05 10:46:09 -0400
commit530bbf058781e00e588f1457b6ee589a64b74da1 (patch)
treec6cdd382a86d55538686293e51a1fc056cb59029 /src/web/_model/apps/people.php
parentremove var (diff)
downloadxssbook2-530bbf058781e00e588f1457b6ee589a64b74da1.tar.gz
xssbook2-530bbf058781e00e588f1457b6ee589a64b74da1.tar.bz2
xssbook2-530bbf058781e00e588f1457b6ee589a64b74da1.zip
i did thing oh god large commit
Diffstat (limited to 'src/web/_model/apps/people.php')
-rw-r--r--src/web/_model/apps/people.php62
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 || ''
);
}