Files
ipwa/src/app/services/updates.service.ts
2025-06-09 13:14:29 +02:00

68 lines
2.2 KiB
TypeScript

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http'
import { Menu } from '../types/menu';
import { environment } from 'src/environments/environment';
import { News } from '../types/news';
import moment from 'moment';
import { map } from 'rxjs';
import { UKey } from '../types/key';
import { CleanNote } from '../types/clean-note';
import { Status } from '../types/status';
@Injectable({
providedIn: 'root'
})
export class UpdatesService {
constructor(private http:HttpClient) { }
getNews() {
const headers = {
'Content-Type': 'application/json',
}
return this.http.get<News[]>(environment.apiEndpoint+"/app/news", {headers: headers, withCredentials: true})
}
newsCheck() {
return this.http.get<{ hash: string; count: number; }>(environment.apiEndpoint+`/app/news/check`, {withCredentials: true})
}
getMenu(dom: moment.Moment) {
const headers = {
'Content-Type': 'application/json',
}
return this.http.get<Menu>(environment.apiEndpoint+`/app/menu/${dom.valueOf()}`, {headers: headers, withCredentials: true})
}
postVote(date: moment.Moment, type: "ob" | "kol", vote: "-" | "+" | "n") {
return this.http.post(environment.apiEndpoint+`/app/menu/${date.valueOf()}`, {
doc: moment().toISOString(true),
tom: type,
vote: vote
}, {withCredentials: true})
}
postNotif(nd: object) {
const headers = {
'Content-Type': 'application/json',
}
this.http.post(environment.apiEndpoint+`/notif`, nd, {headers: headers, withCredentials: true}).subscribe()
}
getKeys() {
return this.http.get<UKey[]>(environment.apiEndpoint+`/app/keys`, {withCredentials: true})
}
getClean(date: moment.Moment) {
return this.http.get<{grade: number, notes: CleanNote[], tips: string}>(environment.apiEndpoint+`/app/clean/${date.toISOString()}`, {withCredentials: true})
}
getNotifCheck() {
return this.http.get<{_id: string, message: {title: string, body: string}, sentDate: moment.Moment}[]>(environment.apiEndpoint+`/app/notif/check`, {withCredentials: true})
}
postInfoAck(id: string) {
return this.http.post<Status>(environment.apiEndpoint+`/app/notif/${id}/ack`, undefined, {withCredentials: true})
}
}