Files
jambotron/jambotron-ui/src/app/modules/user-module/user-api.service.ts
T

55 lines
1.5 KiB
TypeScript

import { Injectable } from '@angular/core';
import {forkJoin, Observable} from 'rxjs';
import {Tutorial} from '../../models/tutorial.model';
import {HttpClient, HttpHeaders} from '@angular/common/http';
import {GlobalConstants} from '../../global-constants';
import {FileInfo} from '../../models/file-info';
@Injectable({
providedIn: 'root'
})
export class UserApiService {
baseUrl = `${GlobalConstants.API_URL}/user`;
constructor(private http: HttpClient) {
}
saveZhipuaiImage(url: string): Observable<any> {
return this.http.post(`${this.baseUrl}/saveZhipuAiImage`, {imageUrl:url});
}
getImages(): Observable<FileInfo[]> {
return this.http.get<FileInfo[]>(`${this.baseUrl}/getImages`);
}
getUserAllTutorials(): Observable<Tutorial[]> {
return this.http.get<Tutorial[]>(`${this.baseUrl}/tutorials`);
}
getTutorial(id: string | null | undefined): Observable<Tutorial> {
return this.http.get<Tutorial>(`${this.baseUrl}/tutorial-get/${id}`);
}
create(data: any): Observable<any> {
return this.http.post(`${this.baseUrl}/tutorial-add`, data);
}
update(id: any,data: any): Observable<any> {
return this.http.put(`${this.baseUrl}/tutorial-update/${id}`, data);
}
deleteTutorials(tutorials: Tutorial[]): Observable<Tutorial[]> {
return forkJoin(
tutorials.map((tutorial) =>
this.http.delete<Tutorial>(`${this.baseUrl}/tutorials/${tutorial.id}`)
)
);
}
deleteTutorial(id: number): Observable<Tutorial> {
return this.http.delete<Tutorial>(`${this.baseUrl}/tutorials/${id}`);
}
}