FrontController::postVote()   B
last analyzed

Complexity

Conditions 7
Paths 48

Size

Total Lines 19
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 56

Importance

Changes 0
Metric Value
dl 0
loc 19
ccs 0
cts 12
cp 0
rs 8.2222
c 0
b 0
f 0
cc 7
eloc 12
nc 48
nop 0
crap 56
1
<?php
2
3
namespace Nicklas\Comment;
4
5
use \Nicklas\Comment\Modules\Post;
6
use \Nicklas\Comment\Modules\Comment;
7
use \Nicklas\Comment\Modules\Vote;
8
use \Nicklas\Comment\Modules\Question;
9
use \Nicklas\Comment\Modules\User;
10
11
/**
12
 * Extends the UserController, for comments
13
 */
14
class FrontController extends QuestionController
15
{
16
17
18
    /**
19
     * View specific question and create answer form
20
     *
21
     * @return void
22
     */
23
    public function postComment($id)
24
    {
25
        $text = isset($_POST["text"]) ? $_POST["text"] : "nothingfound";
26
27
        if ($text == "nothingfound") {
28
            return false;
29
        }
30
        $user = $this->di->get("session")->get("user");
31
        $comment = new Comment($this->di->get("db"));
32
        $comment->text = $text;
33
        $comment->parentId = $id;
34
        $comment->user = $user;
35
        $comment->save();
36
        return true;
37
    }
38
39
    /**
40
     * View specific question and create answer form
41
     *
42
     * @return void
43
     */
44
    public function postVote()
45
    {
46
        $vote = new Vote($this->di->get("db"));
47
48
        $user = $this->di->get("session")->get("user");
49
50
        $parentType = isset($_POST["parentType"]) ? $_POST["parentType"] : "";
51
        $downVote   = isset($_POST["downVote"])   ? $_POST["downVote"]   : null;
52
        $parentId   = isset($_POST["parentId"])   ? $_POST["parentId"]   : "";
53
        $upVote     = isset($_POST["upVote"])     ? $_POST["upVote"]     : null;
54
55
        if ($upVote != null) {
56
            return $vote->like($user, $parentId, $parentType);
57
        }
58
        if ($downVote != null) {
59
            return $vote->dislike($user, $parentId, $parentType);
60
        }
61
        return false;
62
    }
63
64
    /**
65
     * View specific question and create answer form
66
     *
67
     * @return void
68
     */
69 1
    public function postAcceptedAnswer($id)
70
    {
71
        // Find the post
72 1
        $post = new Post($this->di->get("db"));
73 1
        $post = $post->find("id", $id);
74
75
        // Find the question connected to post
76 1
        $question = new Question($this->di->get("db"));
77 1
        $question = $question->find("id", $post->questionId);
78
79
        // Control if the current logged user has authority to accept answer
80 1
        $userName = $this->di->get("session")->get("user");
81 1
        $user = new User($this->di->get("db"));
82
83 1
        if (!$user->controlAuthority($userName, $question->user)) {
84 1
            return false;
85
        }
86
87 1
        $post->accepted = "yes";
88 1
        $post->save();
0 ignored issues
show
Bug introduced by
The method save cannot be called on $post (of type array).

Methods can only be called on objects. This check looks for methods being called on variables that have been inferred to never be objects.

Loading history...
89 1
        return true;
90
    }
91
}
92