Code Duplication    Length = 15-27 lines in 2 locations

src/Xtools/PagesRepository.php 2 locations

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