import {Injectable} from '@angular/core'; import {Observable} from 'rxjs'; import {HttpClient} from '@angular/common/http'; import {Token} from './token'; import {Host} from './host'; import {ChatMessage} from './chat.message'; import {ChatTokenResponse} from './chat.token'; @Injectable({ providedIn: 'root' }) export class ApiService { public static userToken: string; constructor(private client: HttpClient) { } storeData(key: string, value: string): void { sessionStorage.setItem(key, value); } getFromStorage(key: string): string { return sessionStorage.getItem(key); } getAuthToken(username: string, password: string): Observable { return this.client.post(Host.URL + '/token', {username, password}); } getChatToken(authToken: string): Observable { return this.client.get( Host.URL + '/session/chat', {headers: {Authorization: 'Bearer ' + authToken}} ); } getChatHistory(token: string, offset: number, limit: number): Observable { return this.client.get( Host.URL + '/session/chat/history?limit=' + limit + '&offset=' + offset, {headers: {Authorization: 'Bearer ' + token}} ); } deleteAuthToken(token: string): Observable { return this.client.delete( Host.URL + '/token/' + token, {headers: {Authorization: 'Bearer ' + token}} ); } }