X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=client%2Fsrc%2Fapp%2Fcore%2Frest%2Frest-extractor.service.ts;h=17053811c5000633a88f9358396d22996311cbe2;hb=e8bffe9690307f2686ed5573cae2b86ee5f57789;hp=2a926e68f10c286f0618193742949eb41d04d326;hpb=ac27887774e63d99f4e227fbe18846f143cc4b3c;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/core/rest/rest-extractor.service.ts b/client/src/app/core/rest/rest-extractor.service.ts index 2a926e68f..17053811c 100644 --- a/client/src/app/core/rest/rest-extractor.service.ts +++ b/client/src/app/core/rest/rest-extractor.service.ts @@ -9,19 +9,16 @@ export class RestExtractor { constructor (private router: Router) { } - extractDataBool () { - return true - } - - applyToResultListData (result: ResultList, fun: Function, additionalArgs?: any[]): ResultList { + applyToResultListData ( + result: ResultList, + fun: (data: T, ...args: A[]) => U, + additionalArgs: A[] = [] + ): ResultList { const data: T[] = result.data - const newData: T[] = [] - - data.forEach(d => newData.push(fun.apply(this, [ d ].concat(additionalArgs)))) return { total: result.total, - data: newData + data: data.map(d => fun.apply(this, [ d, ...additionalArgs ])) } } @@ -29,8 +26,10 @@ export class RestExtractor { return this.applyToResultListData(result, this.convertDateToHuman, [ fieldsToConvert ]) } - convertDateToHuman (target: { [ id: string ]: string }, fieldsToConvert: string[]) { - fieldsToConvert.forEach(field => target[field] = dateToHuman(target[field])) + convertDateToHuman (target: any, fieldsToConvert: string[]) { + fieldsToConvert.forEach(field => { + target[field] = dateToHuman(target[field]) + }) return target } @@ -46,7 +45,7 @@ export class RestExtractor { errorMessage = err.error } else if (err.status !== undefined) { // A server-side error occurred. - if (err.error && err.error.errors) { + if (err.error?.errors) { const errors = err.error.errors const errorsArray: string[] = [] @@ -55,9 +54,10 @@ export class RestExtractor { }) errorMessage = errorsArray.join('. ') - } else if (err.error && err.error.error) { + } else if (err.error?.error) { errorMessage = err.error.error } else if (err.status === HttpStatusCode.PAYLOAD_TOO_LARGE_413) { + // eslint-disable-next-line max-len errorMessage = $localize`Media is too large for the server. Please contact you administrator if you want to increase the limit size.` } else if (err.status === HttpStatusCode.TOO_MANY_REQUESTS_429) { const secondsLeft = err.headers.get('retry-after') @@ -71,7 +71,7 @@ export class RestExtractor { errorMessage = $localize`Server error. Please retry later.` } - errorMessage = errorMessage ? errorMessage : 'Unknown error.' + errorMessage = errorMessage || 'Unknown error.' console.error(`Backend returned code ${err.status}, errorMessage is: ${errorMessage}`) } else { console.error(err) @@ -89,15 +89,15 @@ export class RestExtractor { errorObj.body = err.error } - return observableThrowError(errorObj) + return observableThrowError(() => errorObj) } redirectTo404IfNotFound (obj: { status: number }, type: 'video' | 'other', status = [ HttpStatusCode.NOT_FOUND_404 ]) { - if (obj && obj.status && status.indexOf(obj.status) !== -1) { + if (obj?.status && status.includes(obj.status)) { // Do not use redirectService to avoid circular dependencies this.router.navigate([ '/404' ], { state: { type, obj }, skipLocationChange: true }) } - return observableThrowError(obj) + return observableThrowError(() => obj) } }