diff options
author | Marvin Borner | 2018-05-16 19:02:38 +0200 |
---|---|---|
committer | Marvin Borner | 2018-05-16 19:02:38 +0200 |
commit | 1ee800eaea3b274654a1d6946fb5a0e055899857 (patch) | |
tree | 1a2e4df208a56f4a6eebf823d4926f4db32ea042 /main/app/sprinkles/admin/src | |
parent | 9913442a4aa0569060c9f2fa2f4e4470f9831335 (diff) |
Improved sql query for friend api
Diffstat (limited to 'main/app/sprinkles/admin/src')
-rw-r--r-- | main/app/sprinkles/admin/src/Controller/UserController.php | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/main/app/sprinkles/admin/src/Controller/UserController.php b/main/app/sprinkles/admin/src/Controller/UserController.php index 481d817..90ec941 100644 --- a/main/app/sprinkles/admin/src/Controller/UserController.php +++ b/main/app/sprinkles/admin/src/Controller/UserController.php @@ -249,12 +249,12 @@ class UserController extends SimpleController ->where('user_id', "=", $requestedUser->id) ->exists()) === FALSE) { Capsule::table('public_keys') - ->insert(['user_id' => $requestedUser->id, 'key' => substr(substr($PublicKey, 100), 0,-40)]); + ->insert(['user_id' => $requestedUser->id, 'key' => substr(substr($PublicKey, 100), 0, -40)]); return $response->withStatus(200); } else if ($this->ci->currentUser->id === $requestedUser->id) { Capsule::table('public_keys') ->where('user_id', $requestedUser->id) - ->update(['key' => substr(substr($PublicKey, 100), 0,-40)]); + ->update(['key' => substr(substr($PublicKey, 100), 0, -40)]); return $response->withStatus(200); } else { throw new ForbiddenException(); @@ -1127,16 +1127,22 @@ class UserController extends SimpleController throw new ForbiddenException(); } + $UsersFriends = Capsule::select("SELECT id FROM (SELECT user_id AS id FROM user_follow WHERE followed_by_id = $user->id UNION ALL SELECT followed_by_id FROM user_follow WHERE user_id = $user->id) t GROUP BY id HAVING COUNT(id) > 1"); - $UsersFriends = Capsule::table('user_follow') - //->select("user_follow.followed_by_id as id", "users.user_name as username") - ->where('user_follow.user_id', "=", $user->id) - ->orWhere('user_follow.followed_by_id', "=", $user->id) - ->join("user_follow", "user_follow.user_id", "=", "user_follow.followed_by_id") - //->join("users", "users.id", "=", "user_follow.followed_by_id") - ->get(); + /* + $UsersFriends = Capsule::table('user_follow as f1') + ->select("u1.user_name as username", "u2.user_name as username") + ->leftJoin("users as u1", "u1.id", "=", "f1.user_id") + ->leftJoin("users as u2", "u2.id", "=", "f1.followed_by_id") + ->whereExists(function ($query) { + $query->select(Capsule::raw(1)) + ->from("user_follow as f2") + ->where("f2.user_id", "=", "f1.followed_by_id"); + }) + //->select("user_follow.user_id as id", "users.user_name as username") + ->get();*/ - $result = $UsersFriends->toArray(); + $result = $UsersFriends; return $response->withJson($result, 200, JSON_PRETTY_PRINT); } |