/** * PUTS route for creating a user. * * @param ServerRequestInterface ServerRequestInterface $request PSR-7 standard for receiving client request * @param ResponseInterface ResponseInterface $response PSR-& standard for sending server response * * @return ResponseInterface HTTP response of client request */ public function create(ServerRequestInterface $request, ResponseInterface $response) { //Get the parsed data $data = $request->getParsedBody(); //Ensure user does not exist already $user = User::where('username', '=', $data['username'])->first(); if ($user == null) { //Create user User::create(['username' => $data['username'], 'password' => hash('SHA256', $data['password'])]); $message = ['message' => 'User created']; } else { //Return message that user already exists $response = $response->withStatus(409); $message = ['message' => 'User already exists']; } $response->getBody()->write(json_encode($message)); return $response; }