93 lines
2.2 KiB
TypeScript
93 lines
2.2 KiB
TypeScript
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
|
import { Injectable } from '@angular/core';
|
|
import { Observable } from 'rxjs';
|
|
import { TokenStorageService } from './token.service';
|
|
|
|
const API_URL = 'https://gruppe1.testsites.info/api/';
|
|
|
|
@Injectable({
|
|
providedIn: 'root',
|
|
})
|
|
export class ProfileService {
|
|
constructor(
|
|
private tokenStorage: TokenStorageService,
|
|
private http: HttpClient
|
|
) {}
|
|
|
|
/**
|
|
* Function to get all Userdata
|
|
* @returns Observable
|
|
*/
|
|
public getUserData(): Observable<any> {
|
|
return this.http.get(API_URL + 'user', {
|
|
headers: new HttpHeaders({
|
|
'Content-Type': 'application/json',
|
|
Authorization: 'Bearer ' + this.tokenStorage.getToken(),
|
|
}),
|
|
responseType: 'text',
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Function to update user profile
|
|
* @param {string} username
|
|
* @param {number} password
|
|
* @returns Observable
|
|
*/
|
|
public updateProfile(username: string, password: number): Observable<any> {
|
|
return this.http.put(
|
|
API_URL + 'user',
|
|
{
|
|
username,
|
|
password,
|
|
},
|
|
{
|
|
headers: new HttpHeaders({
|
|
'Content-Type': 'application/json',
|
|
Authorization: 'Bearer ' + this.tokenStorage.getToken(),
|
|
}),
|
|
}
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Function to add a telegram id
|
|
* @param {string} telegramUserID
|
|
* @returns Observable
|
|
*/
|
|
public addTelegramId(telegram_user_id: string): Observable<any> {
|
|
return this.http.post(
|
|
API_URL + 'telegram',
|
|
{
|
|
telegram_user_id,
|
|
},
|
|
{
|
|
headers: new HttpHeaders({
|
|
'Content-Type': 'application/json',
|
|
Authorization: 'Bearer ' + this.tokenStorage.getToken(),
|
|
}),
|
|
}
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Function to add a cron string for automatic updates
|
|
* @param {string} cronString
|
|
* @returns Observable
|
|
*/
|
|
public addCronString(cron: string): Observable<any> {
|
|
return this.http.put(
|
|
'https://gruppe1.testsites.info/api/user' + '/setCron',
|
|
{
|
|
cron,
|
|
},
|
|
{
|
|
headers: new HttpHeaders({
|
|
'Content-Type': 'application/json',
|
|
Authorization: 'Bearer ' + this.tokenStorage.getToken(),
|
|
}),
|
|
}
|
|
);
|
|
}
|
|
}
|