import { Injectable } from '@angular/core'; import { Event } from '../models/event.model'; import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { Observable } from 'rxjs'; import { environment } from 'src/environments/environment'; import { AuthService } from '../services/auth.service'; import { User } from '../models/user.model'; @Injectable({ providedIn: 'root' }) export class EventsService { authheader = {}; loggeduser: User; headers: HttpHeaders; //lastloadedevent: Event; constructor(private http: HttpClient, user: AuthService) { this.loggeduser = user.ValidatedUser; this.headers = new HttpHeaders(); this.headers = this.headers.set('Authorization', this.loggeduser.BasicAuthKey); } getAllEvents(startdate:string, enddate:string): Observable{ const geturl = environment.apiURL + 'calendar/GetAllEvents'; let params = new HttpParams(); params = params.set("StartDate", startdate); params = params.set("EndDate", enddate); let options = { headers: this.headers, params: params }; return this.http.get(`${geturl}`, options); } getAllPrEvents(startdate:string, enddate:string): Observable{ const geturl = environment.apiURL + 'calendar/pr'; let params = new HttpParams(); params = params.set("Start", startdate); params = params.set("End", enddate); let options = { headers: this.headers, params: params }; return this.http.get(`${geturl}`, options); } getAllMdEvents(startdate:string, enddate:string): Observable{ const geturl = environment.apiURL + 'calendar/md'; let params = new HttpParams(); params = params.set("Start", startdate); params = params.set("End", enddate); let options = { headers: this.headers, params: params }; return this.http.get(`${geturl}`, options); } getEvents(calendarname:string, startdate:string, enddate:string): Observable{ const geturl = environment.apiURL + 'calendar/GetEvents'; let params = new HttpParams(); params = params.set("CalendarName", calendarname); params = params.set("StartDate", startdate); params = params.set("EndDate", enddate); let options = { headers: this.headers, params: params }; return this.http.get(`${geturl}`, options); } getEvent(eventid: string): Observable{ let geturl = environment.apiURL + 'calendar/GetEvent'; let params = new HttpParams(); console.log(eventid); params = params.set("EventId", eventid); let options = { headers: this.headers, params: params }; return this.http.get(`${geturl}`, options); } putEvent(event: Event, conflictResolutionMode:number, sendInvitationsOrCancellationsMode:number, sharedagenda:string): Observable { const puturl = environment.apiURL + 'calendar/' + ((sharedagenda != '') ? sharedagenda : 'PutEvent'); let params = new HttpParams(); params = params.set("conflictResolutionMode", conflictResolutionMode.toString()); params = params.set("sendInvitationsOrCancellationsMode", sendInvitationsOrCancellationsMode.toString()); let options = { headers: this.headers, params: params }; return this.http.put(`${puturl}`, event, options) } editEvent(event: Event, conflictResolutionMode:number, sendInvitationsOrCancellationsMode:number): Observable { const puturl = environment.apiURL + 'calendar/PutEvent'; let params = new HttpParams(); params = params.set("conflictResolutionMode", conflictResolutionMode.toString()); params = params.set("sendInvitationsOrCancellationsMode", sendInvitationsOrCancellationsMode.toString()); let options = { headers: this.headers, params: params }; return this.http.put(`${puturl}`, event, options) } postEvent(event:Event, calendarName:string, sharedagenda:string) { const puturl = environment.apiURL + 'calendar/' + ((sharedagenda != '') ? sharedagenda : 'PostEvent'); let params = new HttpParams(); params = params.set("CalendarName", calendarName); let options = { headers: this.headers, params: params }; return this.http.post(`${puturl}`, event, options) } postEventMd(event:Event, calendarName:string) { const puturl = environment.apiURL + 'calendar/md'; let params = new HttpParams(); params = params.set("CalendarName", calendarName); let options = { headers: this.headers, params: params }; return this.http.post(`${puturl}`, event, options) } postEventPr(event:Event, calendarName:string) { const puturl = environment.apiURL + 'calendar/pr'; let params = new HttpParams(); params = params.set("CalendarName", calendarName); let options = { headers: this.headers, params: params }; return this.http.post(`${puturl}`, event, options) } deleteEvent(eventid:string, deletemode:number) { const puturl = environment.apiURL + 'calendar/PostEvent'; let params = new HttpParams(); params = params.set("EventId", eventid); params = params.set("deleteMode", deletemode.toString()); let options = { headers: this.headers, params: params }; return this.http.delete(`${puturl}`, options) } postExpedientEvent(docId:any, body:any, sharedagenda:string){ const geturl = environment.apiURL + 'calendar/' + ((sharedagenda != '') ? sharedagenda : 'CreateEventExpediente'); let params = new HttpParams(); params = params.set("DocId", docId); let options = { headers: this.headers, params: params }; return this.http.post(`${geturl}`, body, options).toPromise().then(res =>{ console.log(res); }); } }