mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2025-10-06 03:50:26 +02:00
Client: fix loading server configurations
This commit is contained in:
parent
bcd1c9e194
commit
db7af09bd8
13 changed files with 99 additions and 104 deletions
67
client/src/app/core/server/server.service.ts
Normal file
67
client/src/app/core/server/server.service.ts
Normal file
|
@ -0,0 +1,67 @@
|
|||
import { Injectable } from '@angular/core'
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
|
||||
import { ServerConfig } from '../../../../../shared'
|
||||
|
||||
@Injectable()
|
||||
export class ServerService {
|
||||
private static BASE_CONFIG_URL = API_URL + '/api/v1/config/'
|
||||
private static BASE_VIDEO_URL = API_URL + '/api/v1/videos/'
|
||||
|
||||
private config: ServerConfig = {
|
||||
signup: {
|
||||
allowed: false
|
||||
}
|
||||
}
|
||||
private videoCategories: Array<{ id: number, label: string }> = []
|
||||
private videoLicences: Array<{ id: number, label: string }> = []
|
||||
private videoLanguages: Array<{ id: number, label: string }> = []
|
||||
|
||||
constructor (private http: HttpClient) {}
|
||||
|
||||
loadConfig () {
|
||||
this.http.get<ServerConfig>(ServerService.BASE_CONFIG_URL)
|
||||
.subscribe(data => this.config = data)
|
||||
}
|
||||
|
||||
loadVideoCategories () {
|
||||
return this.loadVideoAttributeEnum('categories', this.videoCategories)
|
||||
}
|
||||
|
||||
loadVideoLicences () {
|
||||
return this.loadVideoAttributeEnum('licences', this.videoLicences)
|
||||
}
|
||||
|
||||
loadVideoLanguages () {
|
||||
return this.loadVideoAttributeEnum('languages', this.videoLanguages)
|
||||
}
|
||||
|
||||
getConfig () {
|
||||
return this.config
|
||||
}
|
||||
|
||||
getVideoCategories () {
|
||||
return this.videoCategories
|
||||
}
|
||||
|
||||
getVideoLicences () {
|
||||
return this.videoLicences
|
||||
}
|
||||
|
||||
getVideoLanguages () {
|
||||
return this.videoLanguages
|
||||
}
|
||||
|
||||
private loadVideoAttributeEnum (attributeName: 'categories' | 'licences' | 'languages', hashToPopulate: { id: number, label: string }[]) {
|
||||
return this.http.get(ServerService.BASE_VIDEO_URL + attributeName)
|
||||
.subscribe(data => {
|
||||
Object.keys(data)
|
||||
.forEach(dataKey => {
|
||||
hashToPopulate.push({
|
||||
id: parseInt(dataKey, 10),
|
||||
label: data[dataKey]
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue