]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/core/rest/rest-extractor.service.ts
Update translations
[github/Chocobozzz/PeerTube.git] / client / src / app / core / rest / rest-extractor.service.ts
index 8a297456334b1fae3ed37e27176ca7583e5d3f8c..de3f2bfff7f0cb64dd30d5db41ed7e45e4f73232 100644 (file)
@@ -1,14 +1,18 @@
 import { throwError as observableThrowError } from 'rxjs'
-import { Injectable } from '@angular/core'
+import { Inject, Injectable, LOCALE_ID } from '@angular/core'
 import { Router } from '@angular/router'
-import { dateToHuman } from '@app/helpers'
-import { HttpStatusCode, ResultList } from '@shared/models'
+import { DateFormat, dateToHuman } from '@app/helpers'
 import { logger } from '@root-helpers/logger'
+import { HttpStatusCode, ResultList } from '@shared/models'
+import { HttpHeaderResponse } from '@angular/common/http'
 
 @Injectable()
 export class RestExtractor {
 
-  constructor (private router: Router) { }
+  constructor (
+    @Inject(LOCALE_ID) private localeId: string,
+    private router: Router
+  ) { }
 
   applyToResultListData <T, A, U> (
     result: ResultList<T>,
@@ -23,13 +27,19 @@ export class RestExtractor {
     }
   }
 
-  convertResultListDateToHuman <T> (result: ResultList<T>, fieldsToConvert: string[] = [ 'createdAt' ]): ResultList<T> {
-    return this.applyToResultListData(result, this.convertDateToHuman, [ fieldsToConvert ])
+  convertResultListDateToHuman <T> (
+    result: ResultList<T>,
+    fieldsToConvert: string[] = [ 'createdAt' ],
+    format?: DateFormat
+  ): ResultList<T> {
+    return this.applyToResultListData(result, this.convertDateToHuman, [ fieldsToConvert, format ])
   }
 
-  convertDateToHuman (target: any, fieldsToConvert: string[]) {
+  convertDateToHuman (target: any, fieldsToConvert: string[], format?: DateFormat) {
     fieldsToConvert.forEach(field => {
-      target[field] = dateToHuman(target[field])
+      if (!target[field]) return
+
+      target[field] = dateToHuman(this.localeId, new Date(target[field]), format)
     })
 
     return target
@@ -47,10 +57,11 @@ export class RestExtractor {
   handleError (err: any) {
     const errorMessage = this.buildErrorMessage(err)
 
-    const errorObj: { message: string, status: string, body: string } = {
+    const errorObj: { message: string, status: string, body: string, headers: HttpHeaderResponse } = {
       message: errorMessage,
       status: undefined,
-      body: undefined
+      body: undefined,
+      headers: err.headers
     }
 
     if (err.status) {