@@ -12,14 +12,14 @@ export function getBuilds(
1212 . query ( q => {
1313 if ( userId ) {
1414 q . innerJoin ( 'repositories' , 'repositories.id' , 'builds.repositories_id' )
15- . innerJoin ( 'permissions' , 'permissions.repositories_id' , 'repositories.id' )
16- . where ( 'permissions.users_id' , userId )
17- . andWhere ( function ( ) {
18- this . where ( 'permissions.permission' , true ) . orWhere ( 'repositories.public' , true ) ;
19- } ) ;
15+ . innerJoin ( 'permissions' , 'permissions.repositories_id' , 'repositories.id' )
16+ . where ( 'permissions.users_id' , userId )
17+ . andWhere ( function ( ) {
18+ this . where ( 'permissions.permission' , true ) . orWhere ( 'repositories.public' , true ) ;
19+ } ) ;
2020 } else {
2121 q . innerJoin ( 'repositories' , 'repositories.id' , 'builds.repositories_id' )
22- . where ( 'repositories.public' , true ) ;
22+ . where ( 'repositories.public' , true ) ;
2323 }
2424
2525 if ( filter === 'pr' ) {
@@ -29,10 +29,10 @@ export function getBuilds(
2929 }
3030
3131 q . orderBy ( 'id' , 'DESC' )
32- . offset ( offset )
33- . limit ( limit ) ;
32+ . offset ( offset )
33+ . limit ( limit ) ;
3434 } )
35- . fetchAll ( { withRelated : [ 'repository.permissions' , 'jobs.runs' ] } )
35+ . fetchAll ( { withRelated : [ 'repository.permissions' , 'jobs.runs' ] } )
3636 . then ( builds => {
3737 if ( ! builds ) {
3838 reject ( ) ;
@@ -48,6 +48,7 @@ export function getBuilds(
4848 job . status = job . runs [ job . runs . length - 1 ] . status ;
4949 }
5050
51+ delete job . runs ;
5152 return job ;
5253 } ) ;
5354
@@ -75,17 +76,19 @@ export function getBuild(id: number, userId?: number): Promise<any> {
7576 return new Promise ( ( resolve , reject ) => {
7677 new Build ( )
7778 . query ( q => q . where ( 'id' , id ) )
78- . fetch ( { withRelated : [ { 'repository.permissions' : ( query ) => {
79+ . fetch ( {
80+ withRelated : [ {
81+ 'repository.permissions' : ( query ) => {
7982 if ( userId ) {
8083 query . where ( 'permissions.users_id' , userId )
81- . andWhere ( 'permissions.permission' , true )
82- . orWhere ( 'public' , true ) ;
84+ . andWhere ( 'permissions.permission' , true )
85+ . orWhere ( 'public' , true ) ;
8386 }
8487 }
8588 } ,
86- 'repository.access_token' ,
87- 'jobs.runs' ,
88- 'runs.job_runs' ]
89+ 'repository.access_token' ,
90+ 'jobs.runs' ,
91+ 'runs.job_runs' ]
8992 } )
9093 . then ( build => {
9194 if ( ! build ) {
@@ -140,13 +143,13 @@ export function getBuild(id: number, userId?: number): Promise<any> {
140143 new BuildRun ( )
141144 . query ( q => {
142145 q . innerJoin ( 'builds' , 'builds.id' , 'build_runs.build_id' )
143- . where ( 'builds.repositories_id' , build . repositories_id )
144- . andWhere ( 'builds.id' , '<=' , build . id )
145- . whereNotNull ( 'build_runs.start_time' )
146- . whereNotNull ( 'build_runs.end_time' )
147- . orderBy ( 'build_runs.id' , 'desc' ) ;
146+ . where ( 'builds.repositories_id' , build . repositories_id )
147+ . andWhere ( 'builds.id' , '<=' , build . id )
148+ . whereNotNull ( 'build_runs.start_time' )
149+ . whereNotNull ( 'build_runs.end_time' )
150+ . orderBy ( 'build_runs.id' , 'desc' ) ;
148151 } )
149- . fetch ( { withRelated : 'job_runs' } )
152+ . fetch ( { withRelated : 'job_runs' } )
150153 . then ( lastBuild => {
151154 if ( lastBuild ) {
152155 build . lastBuild = lastBuild . toJSON ( ) ;
@@ -165,45 +168,48 @@ export function getBuild(id: number, userId?: number): Promise<any> {
165168export function getLastBuild ( userId ?: number ) : Promise < any > {
166169 return new Promise ( ( resolve , reject ) => {
167170 new Build ( ) . query ( q => q . orderBy ( 'id' , 'desc' ) )
168- . fetch ( { withRelated : [ { 'repository.permissions' : ( query ) => {
169- if ( userId ) {
170- query . where ( 'permissions.users_id' , userId )
171- . andWhere ( 'permissions.permission' , true )
172- . orWhere ( 'public' , true ) ;
171+ . fetch ( {
172+ withRelated : [ {
173+ 'repository.permissions' : ( query ) => {
174+ if ( userId ) {
175+ query . where ( 'permissions.users_id' , userId )
176+ . andWhere ( 'permissions.permission' , true )
177+ . orWhere ( 'public' , true ) ;
178+ }
173179 }
180+ } ,
181+ 'jobs.runs' ]
182+ } )
183+ . then ( build => {
184+ if ( ! build ) {
185+ reject ( build ) ;
174186 }
175- } ,
176- 'jobs.runs' ] } )
177- . then ( build => {
178- if ( ! build ) {
179- reject ( build ) ;
180- }
181187
182- build = build . toJSON ( ) ;
183- build . jobs = build . jobs . map ( job => {
184- if ( job . runs . length > 0 ) {
185- job . end_time = job . runs [ job . runs . length - 1 ] . end_time ;
186- job . start_time = job . runs [ job . runs . length - 1 ] . start_time ;
187- job . status = job . runs [ job . runs . length - 1 ] . status ;
188- }
188+ build = build . toJSON ( ) ;
189+ build . jobs = build . jobs . map ( job => {
190+ if ( job . runs . length > 0 ) {
191+ job . end_time = job . runs [ job . runs . length - 1 ] . end_time ;
192+ job . start_time = job . runs [ job . runs . length - 1 ] . start_time ;
193+ job . status = job . runs [ job . runs . length - 1 ] . status ;
194+ }
189195
190- return job ;
191- } ) ;
196+ return job ;
197+ } ) ;
192198
193- userId = parseInt ( < any > userId , 10 ) ;
194- if ( build . repository . permissions && build . repository . permissions . length ) {
195- let index = build . repository . permissions . findIndex ( p => p . users_id === userId ) ;
196- if ( index !== - 1 && build . repository . permissions [ index ] . permission ) {
197- build . hasPermission = true ;
199+ userId = parseInt ( < any > userId , 10 ) ;
200+ if ( build . repository . permissions && build . repository . permissions . length ) {
201+ let index = build . repository . permissions . findIndex ( p => p . users_id === userId ) ;
202+ if ( index !== - 1 && build . repository . permissions [ index ] . permission ) {
203+ build . hasPermission = true ;
204+ } else {
205+ build . hasPermission = false ;
206+ }
198207 } else {
199208 build . hasPermission = false ;
200209 }
201- } else {
202- build . hasPermission = false ;
203- }
204210
205- resolve ( build ) ;
206- } ) ;
211+ resolve ( build ) ;
212+ } ) ;
207213 } ) ;
208214}
209215
@@ -254,7 +260,7 @@ export function updateBuild(data: any): Promise<boolean> {
254260export function getBuildRepositoryId ( buildId : number ) : Promise < any > {
255261 return new Promise ( ( resolve , reject ) => {
256262 new Build ( { id : buildId } ) . fetch ( )
257- . then ( build => ! build ? reject ( build ) : resolve ( build . toJSON ( ) . repositories_id ) ) ;
263+ . then ( build => ! build ? reject ( build ) : resolve ( build . toJSON ( ) . repositories_id ) ) ;
258264 } ) ;
259265}
260266
@@ -274,50 +280,50 @@ export function getBuildStatus(buildId: number): Promise<any> {
274280 return curr ;
275281 } else if ( curr === 'success' && accu !== 'failed'
276282 && accu !== 'running' && accu !== 'queued' ) {
277- return curr ;
283+ return curr ;
278284 }
279285
280286 return accu ;
281287 } ) ) ) ;
282288 } ) ;
283- } ) ;
289+ } ) ;
284290}
285291
286292export function getDepracatedBuilds ( build : any ) : Promise < any > {
287293 return new Promise ( ( resolve , reject ) => {
288294 new Build ( { repositories_id : build . repositories_id } )
289- . query ( q => {
290- q . whereNull ( 'end_time' )
291- . andWhereNot ( 'id' , build . id ) ;
295+ . query ( q => {
296+ q . whereNull ( 'end_time' )
297+ . andWhereNot ( 'id' , build . id ) ;
292298
293- if ( build . pr ) {
294- q . where ( 'pr' , build . pr ) ;
295- }
296- } )
297- . fetchAll ( )
298- . then ( builds => {
299- if ( ! builds ) {
300- reject ( ) ;
301- }
299+ if ( build . pr ) {
300+ q . where ( 'pr' , build . pr ) ;
301+ }
302+ } )
303+ . fetchAll ( )
304+ . then ( builds => {
305+ if ( ! builds ) {
306+ reject ( ) ;
307+ }
302308
303- builds = builds . toJSON ( ) ;
304- if ( ! build . pr ) {
305- builds = builds . filter ( b => {
306- if ( build . data . before ) {
307- return build . data . before === b . data . before ;
308- } else if ( build . data . before_sha ) {
309- return build . data . before_sha === b . data . before_sha ;
310- } else if ( build . data . object_attributes && build . data . object_attributes . before_sha ) {
311- return build . data . object_attributes . before_sha
312- === b . data . object_attributes . before_sha ;
313- }
309+ builds = builds . toJSON ( ) ;
310+ if ( ! build . pr ) {
311+ builds = builds . filter ( b => {
312+ if ( build . data . before ) {
313+ return build . data . before === b . data . before ;
314+ } else if ( build . data . before_sha ) {
315+ return build . data . before_sha === b . data . before_sha ;
316+ } else if ( build . data . object_attributes && build . data . object_attributes . before_sha ) {
317+ return build . data . object_attributes . before_sha
318+ === b . data . object_attributes . before_sha ;
319+ }
314320
315- return false ;
316- } ) ;
317- }
318- builds = builds . map ( b => b . id ) ;
321+ return false ;
322+ } ) ;
323+ }
324+ builds = builds . map ( b => b . id ) ;
319325
320- resolve ( builds ) ;
321- } ) ;
326+ resolve ( builds ) ;
327+ } ) ;
322328 } ) ;
323329}
0 commit comments