Advertisement
Guest User

Untitled

a guest
May 4th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.67 KB | None | 0 0
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\User;
  4. use App\Entity\Clock;
  5. use App\Repository\ClockRepository;
  6. use FOS\RestBundle\Controller\Annotations as Rest;
  7. use FOS\RestBundle\Controller\FOSRestController;
  8. use Symfony\Component\Config\Definition\Exception\Exception;
  9. use Symfony\Component\HttpFoundation\JsonResponse;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
  14. use Swagger\Annotations as SWG;
  15. /**
  16. * Class ApiController
  17. *
  18. * @Route("/api")
  19. */
  20. class ApiController extends FOSRestController
  21. {
  22. // USER URI's
  23. /**
  24. * @Rest\Post("/login_check", name="user_login_check")
  25. */
  26. public function getLogin() {}
  27. /**
  28. * @Rest\Post("/register", name="user_register")
  29. */
  30. public function registerAction(Request $request, UserPasswordEncoderInterface $encoder) {
  31. $serializer = $this->get('jms_serializer');
  32. $em = $this->getDoctrine()->getManager();
  33. $user = [];
  34. $message = "";
  35. try {
  36. $code = 200;
  37. $error = false;
  38. $name = $request->request->get('_name');
  39. $email = $request->request->get('_email');
  40. $username = $request->request->get('_username');
  41. $password = $request->request->get('_password');
  42. // 1) build the user
  43. $user = new User();
  44. $user->setName($name);
  45. $user->setEmail($email);
  46. $user->setUsername($username);
  47. $user->setPlainPassword($password);
  48. // 3) Encode the password (you could also do this via Doctrine listener)
  49. $password = $encoder->encodePassword($user, $user->getPlainPassword());
  50. $user->setPassword($password);
  51. // 4) save the User!
  52. $entityManager = $this->getDoctrine()->getManager();
  53. $entityManager->persist($user);
  54. $entityManager->flush();
  55. } catch (Exception $ex) {
  56. $code = 500;
  57. $error = true;
  58. $message = "An error has occurred trying to register the user - Error: {$ex->getMessage()}";
  59. }
  60. $response = [
  61. 'code' => $code,
  62. 'error' => $error,
  63. 'data' => $code == 200 ? $user : $message,
  64. ];
  65. return new Response($serializer->serialize($response, "json"));
  66. }
  67. /**
  68. * @Route("/v1/clock/in", name="clock_in")
  69. */
  70. public function SetClockIn(ClockRepository $repository)
  71. {
  72. $clock = new Clock();
  73. $serializer = $this->get('jms_serializer');
  74. $em = $this->getDoctrine()->getManager();
  75. $user = $this->getUser();
  76. $result = $repository->findOneBy([
  77. 'username' => $user,
  78. 'status' => true,
  79. ]);
  80. $message = $result;
  81. try {
  82. if ( $result == false ) {
  83.  
  84. $code = 200;
  85. $error = false;
  86.  
  87. $message = 'Clock updated';
  88. $dateTimeNow = new \DateTime("now");
  89. // 1) build the clock
  90. $clock->SetClockIn($dateTimeNow);
  91. $clock->SetStatus(true);
  92. $clock->setUsername($user);
  93. // 4) save the User!
  94. $entityManager = $this->getDoctrine()->getManager();
  95. $entityManager->persist($clock);
  96. $entityManager->flush();
  97. }
  98. else {
  99. $code = 200;
  100. $error = false;
  101. $message = 'Clock not updated';
  102. }
  103. } catch (Exception $ex) {
  104. $code = 500;
  105. $error = true;
  106. $message = "An error has occurred trying to register the user - Error: {$ex->getMessage()}";
  107. }
  108. $response = [
  109. 'code' => $code,
  110. 'error' => $error,
  111. 'data' => $message,
  112. ];
  113. return new Response($serializer->serialize($response, "json"));
  114. }
  115. /**
  116. * @Route("/v1/clock/out", name="clock_out")
  117. */
  118. public function SetClockOut(ClockRepository $repository)
  119. {
  120. $serializer = $this->get('jms_serializer');
  121. $em = $this->getDoctrine()->getManager();
  122. $user = $this->getUser();
  123. $clock = $repository->findOneBy([
  124. 'username' => $user,
  125. 'status' => true,
  126. ]);
  127. $message = $clock;
  128. try {
  129. if ( $clock == true ) {
  130.  
  131. $code = 200;
  132. $error = false;
  133.  
  134. $message = 'Clock updated';
  135. $dateTimeNow = new \DateTime("now");
  136. // 1) build the clock
  137. $clock->SetClockOut($dateTimeNow);
  138. $clock->SetStatus(false);
  139. $clock->setUsername($user);
  140. // 4) save the User!
  141. $entityManager = $this->getDoctrine()->getManager();
  142. $entityManager->persist($clock);
  143. $entityManager->flush();
  144. }
  145. else {
  146. $code = 200;
  147. $error = false;
  148. $message = 'Clock not updated';
  149. }
  150. } catch (Exception $ex) {
  151. $code = 500;
  152. $error = true;
  153. $message = "An error has occurred trying to register the user - Error: {$ex->getMessage()}";
  154. }
  155. $response = [
  156. 'code' => $code,
  157. 'error' => $error,
  158. 'data' => $message,
  159. ];
  160. return new Response($serializer->serialize($response, "json"));
  161. }
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement