import { APIResponse, Article, User, UserLogged, NewArticleDTO } from '../../models/models'; import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Observable } from 'rxjs'; import { TokenStorageService } from '../jwt-service/token-storage.service'; import { NumberSymbol } from '@angular/common'; const API_TEST_URL = 'http://localhost:8081/api/v1/test/'; const API_BASE_URL = 'http://localhost:8081/api/v1/'; const TEST_API = 'https://mocki.io/v1/0ec1472c-2146-4b4f-8b37-edb4a8d893c2'; @Injectable({ providedIn: 'root', }) export class UserService { userId: number = this.tokenStorage.getUser().userDetails.id; constructor( private http: HttpClient, private tokenStorage: TokenStorageService ) {} getUserAcceptedArticles():Observable>{ this.userId = this.tokenStorage.getUser().userDetails.id; return this.http.get>( API_BASE_URL + 'user/' + this.userId + '/articles/ACCEPTED' ); } getUserPendingArticles(): Observable> { this.userId = this.tokenStorage.getUser().userDetails.id; return this.http.get>( API_BASE_URL + 'user/' + this.userId + '/articles/PENDING' ); } getAllUsers(): Observable> { return this.http.get>(API_BASE_URL + 'users'); } deleteUser(id: number): Observable { let response = this.http.delete( API_BASE_URL + 'users/delete/' + id ); console.log('deleted', response); return response; } updateUser(id: number, user: User): Observable { let response = this.http.put>( API_BASE_URL + 'users/update/' + id, user ); console.log('update-response', response); return response; } getUserById(id: number): Observable { return this.http.get(API_BASE_URL + 'users/' + id); } addArticleToUser(newArticleRequest:NewArticleDTO): Observable{ // @ts-ignore return this.http.put(API_BASE_URL + 'articleToUser', newArticleRequest); // console.log(response); } addArticleToFav(articleId: number){ // @ts-ignore let response = this.http.put(API_TEST_URL + 'fav/add?' + 'userID=' + this.tokenStorage.getUser().userDetails.id + '&articleID=' + articleId); response.subscribe((data) => { console.log(data); }); return response; } getUserFavoriteArticles() { return this.http.get(API_TEST_URL + 'fav/get?' + 'userID=' + this.userId); } getArticlesForLoggedUser(){ return this.http.get(API_BASE_URL + 'articlesForUser/' +this.tokenStorage.getUser().userDetails.id ); // return this.http.get(TEST_API); } sendMessageForArticle(message: string, articleId: number) { return this.http.post(API_BASE_URL + 'message/add', { fromUserId: this.tokenStorage.getUser().userDetails.id, toArticleId: articleId, message: message }); } }