src/Controller/API/StanceAPI.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\Controller\API;
  3. use App\Controller\BaseController;
  4. use Empire\Access\Access;
  5. use Empire\Core\Core;
  6. use Empire\Core\Stance;
  7. use Exception;
  8. use Symfony\Component\HttpFoundation\JsonResponse;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. /**
  12.  * Class StanceAPI
  13.  * @package App\Controller\API
  14.  * @Route("/api/stance")
  15.  */
  16. class StanceAPI extends BaseController
  17. {
  18.     /**
  19.      * @return JsonResponse
  20.      * @throws Exception
  21.      * @Route("/list")
  22.      */
  23.     public function list() {
  24.        return $this->api(Stance::loadAll());
  25.     }
  26.     /**
  27.      * @param $id
  28.      * @return JsonResponse
  29.      * @Route("/delete/{id}", requirements={"id"="\d+"})
  30.      */
  31.     public function delete($id) {
  32.         if(!Core::user()->hasAccess('stances')) {
  33.             return $this->api(["error" => "User needs 'stances' key."], 403);
  34.         }
  35.         try {
  36.             Stance::load([$id])->delete();
  37.             return $this->api(["status" => "success"]);
  38.         } catch (Exception $e) {
  39.             return $this->api(["error" => "Encountered an error trying to delete this faction""message" => $e->getMessage()], 403);
  40.         }
  41.     }
  42.     /**
  43.      * @param $id
  44.      * @param $value
  45.      * @return JsonResponse
  46.      * @Route("/update/{id}/{value}", requirements={"id"="\d+", "value"="\d+"})
  47.      */
  48.     public function update($id$value) {
  49.         if(!Core::user()->hasAccess('stances')) {
  50.             return $this->api(["error" => "User needs 'stances' key."], 403);
  51.         }
  52.         $stance Stance::load([$id]);
  53.         $stance->set($value);
  54.         return $this->api(["status" => "success"]);
  55.     }
  56.     /**
  57.      * @param Request $request
  58.      * @return JsonResponse
  59.      * @Route("/new", methods={"POST"})
  60.      */
  61.     public function new(Request $request) {
  62.         if(!Access::hasAccess(Core::user(), 'stances')) {
  63.             return $this->api(['error' => "Access key 'stances' required."], 403);
  64.         }
  65.         $name $request->request->get('name');
  66.         $status $request->request->get('status');
  67.         return $this->api(["stance" => Stance::addStance($name$status)]);
  68.     }
  69. }