diff --git a/config/routes.php b/config/routes.php index 8d684714..ce9251c0 100644 --- a/config/routes.php +++ b/config/routes.php @@ -67,6 +67,8 @@ $builder->scope('/api', function (RouteBuilder $builder): void { $builder->get('/leaderboard', ['prefix' => 'Api', 'controller' => 'LeaderBoard', 'action' => 'get']); + $builder->get('/potatoes', ['prefix' => 'Api', 'controller' => 'Potatoes', 'action' => 'list']); + $builder->get('/users', ['prefix' => 'Api', 'controller' => 'Users', 'action' => 'list']); $builder->get('/user', ['prefix' => 'Api', 'controller' => 'Users', 'action' => 'get']); $builder->patch('/user', ['prefix' => 'Api', 'controller' => 'Users', 'action' => 'edit']); diff --git a/src/Controller/Api/PotatoesController.php b/src/Controller/Api/PotatoesController.php new file mode 100644 index 00000000..0b5488a3 --- /dev/null +++ b/src/Controller/Api/PotatoesController.php @@ -0,0 +1,50 @@ +fetchTable('Messages'); + + $sent = $messagesTable->find() + ->select([ + 'amount' => 'Messages.amount', + 'recipient' => 'Messages.receiver_user_id', + 'created' => 'Messages.created', + ]) + ->where(['Messages.sender_user_id' => $this->Authentication->getIdentity()->getIdentifier()]) + ->orderBy(['Messages.created' => 'DESC']) + ->disableHydration() + ->all(); + + $received = $messagesTable->find() + ->select([ + 'amount' => 'Messages.amount', + 'sender' => 'Messages.sender_user_id', + 'created' => 'Messages.created', + ]) + ->where(['Messages.receiver_user_id' => $this->Authentication->getIdentity()->getIdentifier()]) + ->orderBy(['Messages.created' => 'DESC']) + ->disableHydration() + ->all(); + + return $this->response + ->withStatus(200) + ->withType('json') + ->withStringBody(json_encode([ + 'sent' => $sent, + 'received' => $received, + ])); + } +}