aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Wallabag/CoreBundle/Controller/EntryController.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Wallabag/CoreBundle/Controller/EntryController.php')
-rw-r--r--src/Wallabag/CoreBundle/Controller/EntryController.php42
1 files changed, 14 insertions, 28 deletions
diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php
index ba3db806..d7f53aea 100644
--- a/src/Wallabag/CoreBundle/Controller/EntryController.php
+++ b/src/Wallabag/CoreBundle/Controller/EntryController.php
@@ -608,46 +608,32 @@ class EntryController extends Controller
608 } 608 }
609 609
610 /** 610 /**
611 * Get the progress of an entry.
612 *
613 * @param Entry $entry
614 *
615 * @Route("/progress/{entry}", name="get_progress")
616 *
617 * @return JsonResponse
618 */
619 public function getEntriesProgressAction(Entry $entry)
620 {
621 $this->checkUserAction($entry);
622
623 $json = $this->get('serializer')->serialize($entry->getProgress(), 'json');
624
625 return (new JsonResponse())->setJson($json);
626 }
627
628 /**
629 * Set the progress of an entry. 611 * Set the progress of an entry.
630 * 612 *
631 * @param Entry $entry 613 * @param Entry $entry
632 * @param int $progress 614 * @param int $progress
633 * 615 *
634 * @Route("/set-progress/{entry}", name="set_progress") 616 * @Route("/progress/{entry}/{progress}", name="set_progress")
635 * 617 *
636 * @return JsonResponse 618 * @return JsonResponse
637 */ 619 */
638 public function setEntriesProgressAction(Entry $entry, $progress) 620 public function setEntriesProgressAction(Entry $entry, $progress = 0)
639 { 621 {
640 $this->checkUserAction($entry); 622 $this->checkUserAction($entry);
641 $response = new JsonResponse(); 623 $response = new JsonResponse();
642 624
643 if (is_null($progress)) { 625 $progress = (int) $progress;
644 $response->setStatusCode(Response::HTTP_BAD_REQUEST); 626 if ($progress >= 0 && $progress <= 100) {
645 } else { 627 $em = $this->getDoctrine()->getManager();
646 $progress = (int) $progress; 628
647 if ($progress >= 0 && $progress <= 100) { 629 $entry->setProgress($progress);
648 $entry->setProgress($progress); 630
649 $response->setStatusCode(Response::HTTP_OK); 631 $this->get('logger')->info('Set progress to ' . $progress);
650 } 632
633 $em->persist($entry);
634 $em->flush();
635
636 $response->setStatusCode(Response::HTTP_OK);
651 } 637 }
652 638
653 return $response; 639 return $response;