@@ -11,22 +11,38 @@ export function getRepository(id: number): Promise<any> {
1111 }
1212 } ,
1313 'builds.repository' ,
14- 'builds.jobs'
14+ 'builds.jobs.runs' ,
15+ 'access_token.user'
1516 ]
1617 } as any )
1718 . then ( repo => {
1819 if ( ! repo ) {
1920 reject ( repo ) ;
2021 } else {
21- resolve ( repo . toJSON ( ) ) ;
22+ repo = repo . toJSON ( ) ;
23+ repo . builds = repo . builds . map ( build => {
24+ build . jobs = build . jobs . map ( job => {
25+ if ( job . runs . length > 0 ) {
26+ job . end_time = job . runs [ job . runs . length - 1 ] . end_time ;
27+ job . start_time = job . runs [ job . runs . length - 1 ] . start_time ;
28+ job . status = job . runs [ job . runs . length - 1 ] . status ;
29+ }
30+
31+ return job ;
32+ } ) ;
33+
34+ return build ;
35+ } ) ;
36+
37+ resolve ( repo ) ;
2238 }
2339 } ) . catch ( err => reject ( err ) ) ;
2440 } ) ;
2541}
2642
2743export function getRepositoryOnly ( id : number ) : Promise < any > {
2844 return new Promise ( ( resolve , reject ) => {
29- new Repository ( { id : id } ) . fetch ( ) . then ( repo => {
45+ new Repository ( { id : id } ) . fetch ( { withRelated : [ 'access_token.user' ] } ) . then ( repo => {
3046 if ( ! repo ) {
3147 reject ( repo ) ;
3248 } else {
@@ -51,9 +67,13 @@ export function getRepositoryBadge(id: number): Promise<string> {
5167 resolve ( 'unknown' ) ;
5268 } else {
5369 repo = repo . toJSON ( ) ;
54- let status = 'queued' ;
70+ let status = 'unknown' ;
71+
72+ if ( repo . builds [ 0 ] && repo . builds [ 0 ] . runs [ 0 ] ) {
73+ if ( repo . builds [ 0 ] . runs [ 0 ] . job_runs . findIndex ( run => run . status === 'queued' ) !== - 1 ) {
74+ status = 'queued' ;
75+ }
5576
56- if ( repo . builds [ 0 ] && repo . builds [ 0 ] . runs [ 0 ] ) {
5777 if ( repo . builds [ 0 ] . runs [ 0 ] . job_runs . findIndex ( run => run . status === 'failed' ) !== - 1 ) {
5878 status = 'failing' ;
5979 }
@@ -107,8 +127,8 @@ export function getRepositories(userId: string, keyword: string): Promise<any[]>
107127
108128export function getRepositoryId ( owner : string , repository : string ) : Promise < any > {
109129 return new Promise ( ( resolve , reject ) => {
110- new Repository ( ) . query ( q => q . where ( 'full_name' , `${ owner } /${ repository } ` ) )
111- . fetch ( ) . then ( repo => ! repo ? reject ( ) : resolve ( repo . toJSON ( ) . id ) ) ;
130+ new Repository ( ) . query ( q => q . where ( 'full_name' , `${ owner } /${ repository } ` ) ) . fetch ( )
131+ . then ( repo => ! repo ? reject ( ) : resolve ( repo . toJSON ( ) . id ) ) ;
112132 } ) ;
113133}
114134
@@ -124,6 +144,13 @@ export function addRepository(data: any): Promise<any> {
124144 } ) ;
125145}
126146
147+ export function saveRepositorySettings ( data : any ) : Promise < any > {
148+ return new Promise ( ( resolve , reject ) => {
149+ new Repository ( { id : data . id } ) . save ( data , { method : 'update' , require : false } )
150+ . then ( repo => ! repo ? reject ( repo ) : resolve ( repo . toJSON ( ) ) ) ;
151+ } ) ;
152+ }
153+
127154export function updateRepository ( data : any ) : Promise < boolean > {
128155 return new Promise ( ( resolve , reject ) => {
129156 new Repository ( ) . where ( { github_id : data . github_id } )
0 commit comments