| 
<?php require __DIR__ . '/config.php';
 
 $user = new User();
 
 if ( $_SERVER['REQUEST_METHOD'] === "GET" ) :
 try {
 if ( isset($_GET['email']) ) {
 $result = $user->findUser( trim($_GET['email']) );
 } else {
 $result = $user->findAllUser();
 }
 HttpResponse::OK($result);
 } catch (\Throwable $th) {
 HttpResponse::badRequest($th->getMessage());
 }
 endif;
 
 
 if ( $_SERVER['REQUEST_METHOD'] === "POST" ) :
 $data = json_decode(file_get_contents('php://input'),true);
 try {
 $result = $user->createUser(array(
 'fullname' => $data['fullname'],
 'email' => $data['email'],
 'gender' => $data['gender'],
 ));
 
 HttpResponse::Created($result);
 } catch (\Throwable $th) {
 HttpResponse::badRequest($th->getMessage());
 }
 endif;
 
 if ( $_SERVER['REQUEST_METHOD'] === "PATCH" ) :
 $data = json_decode(file_get_contents('php://input'),true);
 try {
 $result = $user->updateUser(array(
 'fullname' => $data['fullname'],
 'email' => $data['email'],
 'gender' => $data['gender'],
 ));
 
 HttpResponse::Ok($result);
 } catch (\Throwable $th) {
 HttpResponse::badRequest($th->getMessage());
 }
 endif;
 
 
 if ( $_SERVER['REQUEST_METHOD'] === "DELETE" ) :
 $data = json_decode(file_get_contents('php://input'),true);
 try {
 $result = $user->deleteUser($data['email']);
 
 HttpResponse::Ok($result);
 } catch (\Throwable $th) {
 HttpResponse::badRequest($th->getMessage());
 }
 endif;
 |