Code Duplication    Length = 31-32 lines in 2 locations

src/Badger/Bundle/GameBundle/Controller/BadgeCompletionController.php 1 location

@@ 71-101 (lines=31) @@
68
     *
69
     * @return RedirectResponse
70
     */
71
    public function acceptAction($id)
72
    {
73
        $pendingCompletion = $this->get('badger.game.repository.badge_completion')
74
            ->findOneBy(['id' => $id, 'pending' => 1]);
75
76
        if (null === $pendingCompletion) {
77
            throw new NotFoundHttpException(sprintf('No pending BadgeCompletion entity with id %s', $id));
78
        }
79
80
        $user = $pendingCompletion->getUser();
81
        $badge = $pendingCompletion->getBadge();
82
83
        $pendingCompletion->setPending(false);
84
        $pendingCompletion->setCompletionDate(new \DateTime());
85
86
        $errors = $this->get('validator')->validate($pendingCompletion);
87
88
        if (0 === count($errors)) {
89
            $this->get('badger.game.saver.badge_completion')->save($pendingCompletion);
90
91
            $this->addFlash('notice', sprintf(
92
                '%s successfully unlocked the badge "%s"!',
93
                $user->getUsername(),
94
                $badge->getTitle()
95
            ));
96
        } else {
97
            $this->addFlash('error', (string) $errors);
98
        }
99
100
        return $this->redirectToRoute('admin_claimed_badge_index');
101
    }
102
103
    /**
104
     * Give a badge to a user directly by creating a completed badge completion.

src/Badger/Bundle/GameBundle/Controller/QuestCompletionController.php 1 location

@@ 69-100 (lines=32) @@
66
     *
67
     * @return RedirectResponse
68
     */
69
    public function acceptAction($id)
70
    {
71
        $pendingCompletion = $this->get('badger.game.repository.quest_completion')
72
            ->findOneBy(['id' => $id, 'pending' => 1]);
73
74
        if (null === $pendingCompletion) {
75
            throw new NotFoundHttpException(sprintf('No pending QuestCompletion entity with id %s', $id));
76
        }
77
78
        $user = $pendingCompletion->getUser();
79
        $quest = $pendingCompletion->getQuest();
80
81
        $pendingCompletion->setPending(false);
82
        $pendingCompletion->setCompletionDate(new \DateTime());
83
84
        $errors = $this->get('validator')->validate($pendingCompletion);
85
86
        if (0 === count($errors)) {
87
            $user->addNuts($quest->getReward());
88
            $this->get('badger.game.saver.quest_completion')->save($pendingCompletion);
89
90
            $this->addFlash('notice', sprintf(
91
                '%s successfully completed the quest "%s"!',
92
                $user->getUsername(),
93
                $quest->getTitle()
94
            ));
95
        } else {
96
            $this->addFlash('error', (string) $errors);
97
        }
98
99
        return $this->redirectToRoute('admin_claimed_quest_index');
100
    }
101
}
102