@@ -130,6 +130,41 @@ export class RevisionService {
130130 return query . getRawMany ( ) ;
131131 }
132132
133+ async findLastsRevisionInPending ( page = 1 , limit = 10 ) : Promise < any > {
134+ const offset = ( page - 1 ) * limit ;
135+ const result = await this . revisionRepository . query (
136+ `SELECT
137+ last_revisions.id,
138+ code_commune AS "codeCommune",
139+ status,
140+ last_revisions.created_at AS "createdAt",
141+ legacy_id AS "legacyId",
142+ validation
143+ FROM (
144+ SELECT DISTINCT ON (code_commune) *
145+ FROM revisions
146+ ORDER BY code_commune, created_at DESC
147+ ) last_revisions
148+ LEFT JOIN clients on clients.id = last_revisions.client_id
149+ WHERE status = 'pending'
150+ ORDER BY last_revisions.created_at DESC
151+ LIMIT $1 OFFSET $2` ,
152+ [ limit , offset ] ,
153+ ) ;
154+
155+ const [ { total } ] = await this . revisionRepository . query ( `
156+ SELECT COUNT(*) as total
157+ FROM (
158+ SELECT DISTINCT ON (code_commune) *
159+ FROM revisions
160+ ORDER BY code_commune, created_at DESC
161+ ) last_revisions
162+ WHERE status = 'pending'
163+ ` ) ;
164+
165+ return { result, total } ;
166+ }
167+
133168 async findFirsts ( ) : Promise < RevisionAgg [ ] > {
134169 const query = this . revisionRepository
135170 . createQueryBuilder ( 'revisions' )
0 commit comments