Newscoop\GimmeBundle\Controller\ArticlesController::lockUnlockArticle PHP Method

lockUnlockArticle() public method

Lock or unlock article.
public lockUnlockArticle ( Request $request, $number, $language )
$request Symfony\Component\HttpFoundation\Request
    public function lockUnlockArticle(Request $request, $number, $language)
    {
        $em = $this->container->get('em');
        $article = $em->getRepository('Newscoop\\Entity\\Article')->getArticle($number, $language)->getOneOrNullResult();
        if (!$article) {
            throw new NewscoopException('Article does not exist');
        }
        $response = new Response();
        $response->setStatusCode(403);
        if ($request->getMethod() === 'POST') {
            if (!$article->isLocked()) {
                $article->setLockUser($this->getUser());
                $article->setLockTime(new \DateTime());
                $response->setStatusCode(200);
            }
        }
        if ($request->getMethod() === 'DELETE') {
            if ($article->isLocked()) {
                $article->setLockUser();
                $article->setLockTime();
                $response->setStatusCode(204);
            }
        }
        $em->flush();
        return $response;
    }