]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - client/src/app/shared/rest/rest.service.ts
Optimize imports
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / rest / rest.service.ts
1 import { Injectable } from '@angular/core'
2 import { HttpParams } from '@angular/common/http'
3 import { SortMeta } from 'primeng/components/common/sortmeta'
4
5 import { RestPagination } from './rest-pagination'
6
7 @Injectable()
8 export class RestService {
9
10 addRestGetParams (params: HttpParams, pagination?: RestPagination, sort?: SortMeta | string) {
11 let newParams = params
12
13 if (pagination !== undefined) {
14 newParams = newParams.set('start', pagination.start.toString())
15 .set('count', pagination.count.toString())
16 }
17
18 if (sort !== undefined) {
19 let sortString = ''
20
21 if (typeof sort === 'string') {
22 sortString = sort
23 } else {
24 const sortPrefix = sort.order === 1 ? '' : '-'
25 sortString = sortPrefix + sort.field
26 }
27
28 newParams = newParams.set('sort', sortString)
29 }
30
31 return newParams
32 }
33
34 }