Code Duplication    Length = 15-27 lines in 2 locations

src/Xtools/PagesRepository.php 2 locations

@@ 101-127 (lines=27) @@
98
     * @param User|null $user Specify to get only revisions by the given user.
99
     * @return Doctrine\DBAL\Driver\PDOStatement
100
     */
101
    public function getRevisionsStmt(Page $page, User $user = null)
102
    {
103
        $revTable = $this->getTableName($page->getProject()->getDatabaseName(), 'revision');
104
        $userClause = $user ? "revs.rev_user_text in (:username) AND " : "";
105
106
        $sql = "SELECT
107
                    revs.rev_id AS id,
108
                    revs.rev_timestamp AS timestamp,
109
                    revs.rev_minor_edit AS minor,
110
                    revs.rev_len AS length,
111
                    (CAST(revs.rev_len AS SIGNED) - IFNULL(parentrevs.rev_len, 0)) AS length_change,
112
                    revs.rev_user AS user_id,
113
                    revs.rev_user_text AS username,
114
                    revs.rev_comment AS comment
115
                FROM $revTable AS revs
116
                LEFT JOIN $revTable AS parentrevs ON (revs.rev_parent_id = parentrevs.rev_id)
117
                WHERE $userClause revs.rev_page = :pageid
118
                ORDER BY revs.rev_timestamp ASC";
119
120
        $params = ['pageid' => $page->getId()];
121
        if ($user) {
122
            $params['username'] = $user->getUsername();
123
        }
124
125
        $conn = $this->getProjectsConnection();
126
        return $conn->executeQuery($sql, $params);
127
    }
128
129
    /**
130
     * Get a count of the number of revisions of a single page
@@ 135-149 (lines=15) @@
132
     * @param User|null $user Specify to only count revisions by the given user.
133
     * @return int
134
     */
135
    public function getNumRevisions(Page $page, User $user = null)
136
    {
137
        $revTable = $this->getTableName($page->getProject()->getDatabaseName(), 'revision');
138
        $userClause = $user ? "rev_user_text in (:username) AND " : "";
139
140
        $sql = "SELECT COUNT(*)
141
                FROM $revTable
142
                WHERE $userClause rev_page = :pageid";
143
        $params = ['pageid' => $page->getId()];
144
        if ($user) {
145
            $params['username'] = $user->getUsername();
146
        }
147
        $conn = $this->getProjectsConnection();
148
        return $conn->executeQuery($sql, $params)->fetchColumn(0);
149
    }
150
151
    /**
152
     * Get assessment data for the given pages