Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Controller;
- use App\Entity\User;
- use App\Entity\Clock;
- use App\Repository\ClockRepository;
- use FOS\RestBundle\Controller\Annotations as Rest;
- use FOS\RestBundle\Controller\FOSRestController;
- use Symfony\Component\Config\Definition\Exception\Exception;
- use Symfony\Component\HttpFoundation\JsonResponse;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\HttpFoundation\Response;
- use Symfony\Component\Routing\Annotation\Route;
- use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
- use Swagger\Annotations as SWG;
- /**
- * Class ApiController
- *
- * @Route("/api")
- */
- class ApiController extends FOSRestController
- {
- // USER URI's
- /**
- * @Rest\Post("/login_check", name="user_login_check")
- */
- public function getLogin() {}
- /**
- * @Rest\Post("/register", name="user_register")
- */
- public function registerAction(Request $request, UserPasswordEncoderInterface $encoder) {
- $serializer = $this->get('jms_serializer');
- $em = $this->getDoctrine()->getManager();
- $user = [];
- $message = "";
- try {
- $code = 200;
- $error = false;
- $name = $request->request->get('_name');
- $email = $request->request->get('_email');
- $username = $request->request->get('_username');
- $password = $request->request->get('_password');
- // 1) build the user
- $user = new User();
- $user->setName($name);
- $user->setEmail($email);
- $user->setUsername($username);
- $user->setPlainPassword($password);
- // 3) Encode the password (you could also do this via Doctrine listener)
- $password = $encoder->encodePassword($user, $user->getPlainPassword());
- $user->setPassword($password);
- // 4) save the User!
- $entityManager = $this->getDoctrine()->getManager();
- $entityManager->persist($user);
- $entityManager->flush();
- } catch (Exception $ex) {
- $code = 500;
- $error = true;
- $message = "An error has occurred trying to register the user - Error: {$ex->getMessage()}";
- }
- $response = [
- 'code' => $code,
- 'error' => $error,
- 'data' => $code == 200 ? $user : $message,
- ];
- return new Response($serializer->serialize($response, "json"));
- }
- /**
- * @Route("/v1/clock/in", name="clock_in")
- */
- public function SetClockIn(ClockRepository $repository)
- {
- $clock = new Clock();
- $serializer = $this->get('jms_serializer');
- $em = $this->getDoctrine()->getManager();
- $user = $this->getUser();
- $result = $repository->findOneBy([
- 'username' => $user,
- 'status' => true,
- ]);
- $message = $result;
- try {
- if ( $result == false ) {
- $code = 200;
- $error = false;
- $message = 'Clock updated';
- $dateTimeNow = new \DateTime("now");
- // 1) build the clock
- $clock->SetClockIn($dateTimeNow);
- $clock->SetStatus(true);
- $clock->setUsername($user);
- // 4) save the User!
- $entityManager = $this->getDoctrine()->getManager();
- $entityManager->persist($clock);
- $entityManager->flush();
- }
- else {
- $code = 200;
- $error = false;
- $message = 'Clock not updated';
- }
- } catch (Exception $ex) {
- $code = 500;
- $error = true;
- $message = "An error has occurred trying to register the user - Error: {$ex->getMessage()}";
- }
- $response = [
- 'code' => $code,
- 'error' => $error,
- 'data' => $message,
- ];
- return new Response($serializer->serialize($response, "json"));
- }
- /**
- * @Route("/v1/clock/out", name="clock_out")
- */
- public function SetClockOut(ClockRepository $repository)
- {
- $serializer = $this->get('jms_serializer');
- $em = $this->getDoctrine()->getManager();
- $user = $this->getUser();
- $clock = $repository->findOneBy([
- 'username' => $user,
- 'status' => true,
- ]);
- $message = $clock;
- try {
- if ( $clock == true ) {
- $code = 200;
- $error = false;
- $message = 'Clock updated';
- $dateTimeNow = new \DateTime("now");
- // 1) build the clock
- $clock->SetClockOut($dateTimeNow);
- $clock->SetStatus(false);
- $clock->setUsername($user);
- // 4) save the User!
- $entityManager = $this->getDoctrine()->getManager();
- $entityManager->persist($clock);
- $entityManager->flush();
- }
- else {
- $code = 200;
- $error = false;
- $message = 'Clock not updated';
- }
- } catch (Exception $ex) {
- $code = 500;
- $error = true;
- $message = "An error has occurred trying to register the user - Error: {$ex->getMessage()}";
- }
- $response = [
- 'code' => $code,
- 'error' => $error,
- 'data' => $message,
- ];
- return new Response($serializer->serialize($response, "json"));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement