FrontController   A
last analyzed

Complexity

Total Complexity 12

Size/Duplication

Total Lines 78
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 6

Test Coverage

Coverage 34.29%

Importance

Changes 0
Metric Value
wmc 12
lcom 1
cbo 6
dl 0
loc 78
ccs 12
cts 35
cp 0.3429
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A postComment() 0 15 3
B postVote() 0 19 7
A postAcceptedAnswer() 0 22 2
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