You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ombi/src/Ombi/ClientApp/app/services/settings.service.ts

91 lines
4.0 KiB

import { Injectable } from '@angular/core';
import { AuthHttp } from 'angular2-jwt';
import { Http } from '@angular/http';
import { Observable } from 'rxjs/Rx';
import { ServiceAuthHelpers } from './service.helpers';
import {
IOmbiSettings,
IEmbySettings,
IPlexSettings,
ISonarrSettings,
ILandingPageSettings,
ICustomizationSettings,
IRadarrSettings
} from '../interfaces/ISettings';
import { IEmailNotificationSettings } from '../interfaces/INotifcationSettings';
@Injectable()
export class SettingsService extends ServiceAuthHelpers {
constructor(public httpAuth: AuthHttp, private nonAuthHttp: Http) {
7 years ago
super(httpAuth, '/api/v1/Settings');
}
getOmbi(): Observable<IOmbiSettings> {
7 years ago
return this.httpAuth.get(`${this.url}/Ombi/`).map(this.extractData).catch(this.handleError)
}
saveOmbi(settings: IOmbiSettings): Observable<boolean> {
7 years ago
return this.httpAuth.post(`${this.url}/Ombi/`, JSON.stringify(settings), { headers: this.headers }).map(this.extractData).catch(this.handleError)
}
8 years ago
getEmby(): Observable<IEmbySettings> {
7 years ago
return this.httpAuth.get(`${this.url}/Emby/`).map(this.extractData).catch(this.handleError)
8 years ago
}
saveEmby(settings: IEmbySettings): Observable<boolean> {
7 years ago
return this.httpAuth.post(`${this.url}/Emby/`, JSON.stringify(settings), { headers: this.headers }).map(this.extractData).catch(this.handleError)
8 years ago
}
getPlex(): Observable<IPlexSettings> {
7 years ago
return this.httpAuth.get(`${this.url}/Plex/`).map(this.extractData).catch(this.handleError)
8 years ago
}
savePlex(settings: IPlexSettings): Observable<boolean> {
7 years ago
return this.httpAuth.post(`${this.url}/Plex/`, JSON.stringify(settings), { headers: this.headers }).map(this.extractData).catch(this.handleError)
8 years ago
}
getSonarr(): Observable<ISonarrSettings> {
7 years ago
return this.httpAuth.get(`${this.url}/Sonarr`).map(this.extractData)
.catch(this.handleError);
}
saveSonarr(settings: ISonarrSettings): Observable<boolean> {
7 years ago
return this.httpAuth.post(`${this.url}/Sonarr`, JSON.stringify(settings), { headers: this.headers }).map(this.extractData).catch(this.handleError)
}
getRadarr(): Observable<IRadarrSettings> {
return this.httpAuth.get(`${this.url}/Radarr`).map(this.extractData)
.catch(this.handleError);
}
saveRadarr(settings: IRadarrSettings): Observable<boolean> {
return this.httpAuth.post(`${this.url}/Radarr`, JSON.stringify(settings), { headers: this.headers }).map(this.extractData).catch(this.handleError)
}
// Using http since we need it not to be authenticated to get the landing page settings
8 years ago
getLandingPage(): Observable<ILandingPageSettings> {
7 years ago
return this.nonAuthHttp.get(`${this.url}/LandingPage`).map(this.extractData).catch(this.handleError)
8 years ago
}
saveLandingPage(settings: ILandingPageSettings): Observable<boolean> {
7 years ago
return this.httpAuth.post(`${this.url}/LandingPage`, JSON.stringify(settings), { headers: this.headers }).map(this.extractData).catch(this.handleError)
8 years ago
}
// Using http since we need it not to be authenticated to get the customization settings
getCustomization(): Observable<ICustomizationSettings> {
7 years ago
return this.nonAuthHttp.get(`${this.url}/customization`).map(this.extractData).catch(this.handleError)
}
saveCustomization(settings: ICustomizationSettings): Observable<boolean> {
7 years ago
return this.httpAuth.post(`${this.url}/customization`, JSON.stringify(settings), { headers: this.headers }).map(this.extractData).catch(this.handleError)
}
getEmailNotificationSettings(): Observable<IEmailNotificationSettings> {
return this.httpAuth.get(`${this.url}/notifications/email`).map(this.extractData).catch(this.handleError)
}
saveEmailNotificationSettings(settings: IEmailNotificationSettings): Observable<boolean> {
return this.httpAuth.post(`${this.url}/notifications/email`, JSON.stringify(settings), { headers: this.headers }).map(this.extractData).catch(this.handleError)
}
}