Files
doneit-web/src/app/services/events.service.ts
T

552 lines
17 KiB
TypeScript
Raw Normal View History

import { Injectable } from '@angular/core';
2021-05-14 14:37:38 +01:00
import { Event, EventToApproveEdit } from '../models/event.model';
2020-08-21 16:18:37 +01:00
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
import { Observable } from 'rxjs';
import { environment } from 'src/environments/environment';
import { AuthService } from '../services/auth.service';
2021-09-03 12:19:21 +01:00
import { LoginUserRespose, UserSession } from '../models/user.model';
2021-08-31 09:00:33 +01:00
import { EventList } from '../models/agenda/AgendaEventList';
@Injectable({
providedIn: 'root'
})
export class EventsService {
2020-08-21 16:18:37 +01:00
authheader = {};
2021-09-03 12:19:21 +01:00
loggeduser: UserSession;
2020-08-21 16:18:37 +01:00
headers: HttpHeaders;
2021-06-15 17:42:51 +01:00
2021-06-16 13:29:57 +01:00
headersPrOficial: HttpHeaders;
headersPrPessoal: HttpHeaders;
headersMdOficial: HttpHeaders;
headersMdPessoal: HttpHeaders;
2021-06-15 17:42:51 +01:00
headersSharedOficial: HttpHeaders;
headersSharedPessoal: HttpHeaders;
2020-08-26 14:24:18 +01:00
//lastloadedevent: Event;
2021-08-10 09:40:14 +01:00
constructor(private http: HttpClient, user: AuthService) {
this.loggeduser = user.ValidatedUser;
2021-06-15 17:42:51 +01:00
2021-06-16 13:29:57 +01:00
this.headersMdOficial = new HttpHeaders();
this.headersMdPessoal = new HttpHeaders();
2021-06-15 17:42:51 +01:00
2021-06-16 13:29:57 +01:00
this.headersPrOficial = new HttpHeaders();
this.headersPrPessoal = new HttpHeaders();
2021-06-15 17:42:51 +01:00
2021-06-16 13:29:57 +01:00
this.headersSharedOficial = new HttpHeaders();
this.headersSharedPessoal = new HttpHeaders();
2021-06-15 17:42:51 +01:00
2021-07-01 16:23:47 +01:00
if(this.loggeduser){
2021-08-10 09:40:14 +01:00
if(this.loggeduser.Profile == 'MDGPR') {
2021-09-03 12:52:49 +01:00
2021-08-10 09:40:14 +01:00
this.loggeduser.OwnerCalendars.forEach(calendar => {
if(calendar.CalendarName == 'Oficial') {
2021-07-01 16:23:47 +01:00
this.headersMdOficial = this.headersMdOficial.set('Authorization', this.loggeduser.BasicAuthKey);
this.headersMdOficial = this.headersMdOficial.set('CalendarId', calendar.CalendarId);
this.headersMdOficial = this.headersMdOficial.set('CalendarRoleId', calendar.CalendarRoleId);
}
2021-08-10 09:40:14 +01:00
else if(calendar.CalendarName == 'Pessoal') {
2021-07-01 16:23:47 +01:00
this.headersMdPessoal = this.headersMdPessoal.set('Authorization', this.loggeduser.BasicAuthKey);
this.headersMdPessoal = this.headersMdPessoal.set('CalendarId', calendar.CalendarId);
this.headersMdPessoal = this.headersMdPessoal.set('CalendarRoleId', calendar.CalendarRoleId);
2021-09-03 12:52:49 +01:00
2021-07-01 16:23:47 +01:00
}
});
2021-09-03 12:52:49 +01:00
2021-08-10 09:40:14 +01:00
this.loggeduser.SharedCalendars.forEach(sharedCalendar => {
if(sharedCalendar.CalendarName == 'Oficial') {
2021-07-01 16:23:47 +01:00
this.headersSharedOficial = this.headersSharedOficial.set('Authorization', this.loggeduser.BasicAuthKey);
this.headersSharedOficial = this.headersSharedOficial.set('CalendarId', sharedCalendar.CalendarId);
this.headersSharedOficial = this.headersSharedOficial.set('CalendarRoleId', sharedCalendar.CalendarRoleId);
}
2021-08-10 09:40:14 +01:00
else if(sharedCalendar.CalendarName == 'Pessoal') {
2021-07-01 16:23:47 +01:00
this.headersSharedPessoal = this.headersSharedPessoal.set('Authorization', this.loggeduser.BasicAuthKey);
this.headersSharedPessoal = this.headersSharedPessoal.set('CalendarId', sharedCalendar.CalendarId);
this.headersSharedPessoal = this.headersSharedPessoal.set('CalendarRoleId', sharedCalendar.CalendarRoleId);
}
});
}
2021-08-10 09:40:14 +01:00
else if(this.loggeduser.Profile == 'PR') {
2021-09-03 12:52:49 +01:00
2021-07-01 16:23:47 +01:00
this.loggeduser.OwnerCalendars.forEach(calendar =>{
if(calendar.CalendarName == 'Oficial'){
this.headersPrOficial = this.headersPrOficial.set('Authorization', this.loggeduser.BasicAuthKey);
this.headersPrOficial = this.headersPrOficial.set('CalendarId', calendar.CalendarId);
this.headersPrOficial = this.headersPrOficial.set('CalendarRoleId', calendar.CalendarRoleId);
}
2021-08-10 09:40:14 +01:00
else if(calendar.CalendarName == 'Pessoal') {
2021-07-01 16:23:47 +01:00
this.headersPrPessoal = this.headersPrPessoal.set('Authorization', this.loggeduser.BasicAuthKey);
this.headersPrPessoal = this.headersPrPessoal.set('CalendarId', calendar.CalendarId);
this.headersPrPessoal = this.headersPrPessoal.set('CalendarRoleId', calendar.CalendarRoleId);
2021-09-03 12:52:49 +01:00
2021-07-01 16:23:47 +01:00
}
});
}
2021-09-03 12:52:49 +01:00
2021-07-01 16:23:47 +01:00
this.headers = new HttpHeaders();
this.headers = this.headers.set('Authorization', this.loggeduser.BasicAuthKey);
2021-06-15 17:42:51 +01:00
}
2021-06-16 13:29:57 +01:00
2021-07-01 16:23:47 +01:00
}
2021-06-16 13:29:57 +01:00
/* getAllEvents(startdate:string, enddate:string): Observable<Event[]>{
2020-08-21 16:18:37 +01:00
const geturl = environment.apiURL + 'calendar/GetAllEvents';
let params = new HttpParams();
params = params.set("StartDate", startdate);
params = params.set("EndDate", enddate);
2021-09-03 12:52:49 +01:00
let options = {
headers: this.headers,
params: params
2020-08-21 16:18:37 +01:00
};
return this.http.get<Event[]>(`${geturl}`, options);
2021-06-16 13:29:57 +01:00
} */
2021-06-15 17:42:51 +01:00
2021-08-31 09:00:33 +01:00
getAllPrOficialEvents(startdate:string, enddate:string): Observable<EventList[]>{
2021-07-29 15:40:24 +01:00
let geturl = environment.apiURL + 'calendar/pr';
geturl = geturl.replace('/V4/','/V5/')
let params = new HttpParams();
2020-08-21 16:18:37 +01:00
params = params.set("Start", startdate);
params = params.set("End", enddate);
2021-09-03 12:52:49 +01:00
let options = {
headers: this.headersPrOficial,
params: params
};
2021-08-31 09:00:33 +01:00
return this.http.get<EventList[]>(`${geturl}`, options);
}
2021-06-15 17:42:51 +01:00
2021-08-31 09:00:33 +01:00
getAllPrPessoalEvents(startdate:string, enddate:string): Observable<EventList[]>{
2021-07-29 15:40:24 +01:00
let geturl = environment.apiURL + 'calendar/pr';
geturl = geturl.replace('/V4/','/V5/')
2021-06-15 17:42:51 +01:00
let params = new HttpParams();
params = params.set("Start", startdate);
params = params.set("End", enddate);
2021-09-03 12:52:49 +01:00
let options = {
headers: this.headersPrPessoal,
params: params
2021-06-15 17:42:51 +01:00
};
2021-08-31 09:00:33 +01:00
return this.http.get<EventList[]>(`${geturl}`, options);
2021-06-15 17:42:51 +01:00
}
2021-08-31 09:00:33 +01:00
async getAllPrEvents(startdate:string, enddate:string): Promise<EventList[]>{
2021-06-16 16:55:47 +01:00
let prO = await this.getAllPrOficialEvents(startdate, enddate).toPromise();
let prP = await this.getAllPrPessoalEvents(startdate, enddate).toPromise();
const resFinal = prO.concat(prP);
return new Promise(resolve =>{
return resolve(resFinal)
})
}
2021-08-31 09:00:33 +01:00
getAllMdOficialEvents(startdate:string, enddate:string): Observable<EventList[]>{
2021-07-29 15:40:24 +01:00
let geturl = environment.apiURL + 'calendar/md';
let params = new HttpParams();
params = params.set("Start", startdate);
params = params.set("End", enddate);
2021-09-03 12:52:49 +01:00
let options = {
headers: this.headersMdOficial,
params: params
2021-06-15 17:42:51 +01:00
};
2021-08-31 09:00:33 +01:00
return this.http.get<EventList[]>(`${geturl}`, options);
2021-06-15 17:42:51 +01:00
}
2021-06-16 16:55:47 +01:00
getAllMdPessoalEvents(startdate:string, enddate:string): any{
2021-07-29 15:40:24 +01:00
let geturl = environment.apiURL + 'calendar/md';
2021-09-03 12:52:49 +01:00
2021-06-15 17:42:51 +01:00
let params = new HttpParams();
params = params.set("Start", startdate);
params = params.set("End", enddate);
2021-09-03 12:52:49 +01:00
let options = {
headers: this.headersMdPessoal,
params: params
2021-06-15 17:42:51 +01:00
};
2021-07-15 12:29:37 +01:00
return this.http.get<any>(`${geturl}`, options)
2021-06-16 16:55:47 +01:00
}
2021-07-13 13:41:09 +01:00
async getAllMdEvents(startdate:string, enddate:string) {
2021-06-16 16:55:47 +01:00
let prO = await this.getAllMdOficialEvents(startdate, enddate).toPromise();
let prP = await this.getAllMdPessoalEvents(startdate, enddate).toPromise();
const resFinal = prO.concat(prP);
return new Promise(resolve =>{
return resolve(resFinal)
});
2021-06-15 17:42:51 +01:00
}
2021-07-13 09:57:38 +01:00
async getAllSharedEvents(startdate:string, enddate:string) {
let prO = await this.getAllSharedOficialEvents(startdate, enddate).toPromise();
let prP = await this.getAllSharedPessoalEvents(startdate, enddate).toPromise();
const resFinal = prO.concat(prP);
2021-09-03 12:52:49 +01:00
2021-07-13 09:57:38 +01:00
return new Promise(resolve =>{
return resolve(resFinal)
});
}
2021-06-15 17:42:51 +01:00
getAllSharedOficialEvents(startdate:string, enddate:string): Observable<Event[]>{
2021-07-29 15:40:24 +01:00
let geturl = environment.apiURL + 'calendar/pr';
geturl = geturl.replace('/V4/','/V5/')
2021-06-15 17:42:51 +01:00
let params = new HttpParams();
params = params.set("Start", startdate);
params = params.set("End", enddate);
2021-09-03 12:52:49 +01:00
let options = {
headers: this.headersSharedOficial,
params: params
2021-06-15 17:42:51 +01:00
};
2021-07-08 21:31:14 +01:00
console.log(options);
2021-09-03 12:52:49 +01:00
2021-06-15 17:42:51 +01:00
return this.http.get<Event[]>(`${geturl}`, options);
}
getAllSharedPessoalEvents(startdate:string, enddate:string): Observable<Event[]>{
2021-07-29 15:40:24 +01:00
let geturl = environment.apiURL + 'calendar/pr';
geturl = geturl.replace('/V4/','/V5/')
2021-06-15 17:42:51 +01:00
let params = new HttpParams();
params = params.set("Start", startdate);
params = params.set("End", enddate);
2021-09-03 12:52:49 +01:00
let options = {
headers: this.headersSharedPessoal,
params: params
};
return this.http.get<Event[]>(`${geturl}`, options);
}
2021-07-13 09:57:38 +01:00
2021-06-16 16:55:47 +01:00
2021-07-08 13:20:54 +01:00
getRecurrenceTypes(): any{
2021-07-09 11:51:22 +01:00
const geturl = environment.apiURL + 'Calendar/RecurrenceTypes';
2021-09-03 12:52:49 +01:00
let options = {
headers: this.headers,
2021-07-08 13:20:54 +01:00
};
return this.http.get<any>(`${geturl}`, options);
}
getEvents(calendarname:string, startdate:string, enddate:string): Observable<Event[]>{
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);
2021-09-03 12:52:49 +01:00
let options = {
headers: this.headers,
params: params
};
2020-08-21 16:18:37 +01:00
return this.http.get<Event[]>(`${geturl}`, options);
}
2020-08-21 16:18:37 +01:00
getEvent(eventid: string): Observable<Event>{
2020-11-24 13:46:13 +01:00
let geturl = environment.apiURL + 'calendar/GetEvent';
2020-08-21 16:18:37 +01:00
let params = new HttpParams();
2021-09-03 12:52:49 +01:00
2020-08-21 16:18:37 +01:00
params = params.set("EventId", eventid);
2021-09-03 12:52:49 +01:00
let options = {
headers: this.headers,
params: params
2020-08-21 16:18:37 +01:00
};
return this.http.get<Event>(`${geturl}`, options);
}
2020-11-20 12:59:47 +01:00
putEvent(event: Event, conflictResolutionMode:number, sendInvitationsOrCancellationsMode:number, sharedagenda:string): Observable<Event>
{
2020-11-20 12:59:47 +01:00
const puturl = environment.apiURL + 'calendar/' + ((sharedagenda != '') ? sharedagenda : 'PutEvent');
let params = new HttpParams();
2020-08-21 16:18:37 +01:00
params = params.set("conflictResolutionMode", conflictResolutionMode.toString());
params = params.set("sendInvitationsOrCancellationsMode", sendInvitationsOrCancellationsMode.toString());
2021-09-03 12:52:49 +01:00
let options = {
headers: this.headers,
params: params
2020-08-21 16:18:37 +01:00
};
2020-08-21 16:18:37 +01:00
return this.http.put<Event>(`${puturl}`, event, options)
}
2020-11-24 13:46:13 +01:00
editEvent(event: Event, conflictResolutionMode:number, sendInvitationsOrCancellationsMode:number): Observable<Event>
{
const puturl = environment.apiURL + 'calendar/PutEvent';
let params = new HttpParams();
params = params.set("conflictResolutionMode", conflictResolutionMode.toString());
params = params.set("sendInvitationsOrCancellationsMode", sendInvitationsOrCancellationsMode.toString());
2021-09-02 17:08:43 +01:00
params.set('CalendarId', event.CalendarId)
params.set('CalendarName', event.CalendarName)
this.headers['CalendarId'] = event.CalendarId
this.headers['CalendarName'] = event.CalendarName
2021-09-03 12:52:49 +01:00
if(event.CalendarName == 'Oficial'){
if(this.loggeduser.Profile == 'MDGPR'){
this.headers = this.headersMdOficial;
}
else if(this.loggeduser.Profile == 'PR'){
this.headers = this.headersPrOficial;
}
}
else{
if(this.loggeduser.Profile == 'MDGPR'){
this.headers = this.headersMdPessoal;
}
else if(this.loggeduser.Profile == 'PR'){
this.headers = this.headersPrPessoal;
}
}
let options = {
headers: this.headers,
params: params
2020-11-24 13:46:13 +01:00
};
return this.http.put<Event>(`${puturl}`, event, options)
}
2021-06-29 10:50:05 +01:00
changeAgenda(body:any){
const puturl = environment.apiURL + 'Calendar/MoveEvent';
2021-09-03 12:52:49 +01:00
let options = {
2021-06-29 10:50:05 +01:00
headers: this.headers,
};
return this.http.post<any>(`${puturl}`, body, options);
}
2021-06-16 13:29:57 +01:00
/* postEvent(event:Event, calendarName:string, sharedagenda:string)
2020-08-21 16:18:37 +01:00
{
2020-11-20 12:59:47 +01:00
const puturl = environment.apiURL + 'calendar/' + ((sharedagenda != '') ? sharedagenda : 'PostEvent');
2020-08-21 16:18:37 +01:00
let params = new HttpParams();
params = params.set("CalendarName", calendarName);
2020-11-24 13:46:13 +01:00
2021-09-03 12:52:49 +01:00
let options = {
headers: this.headers,
params: params
2020-11-24 13:46:13 +01:00
};
2021-09-03 12:52:49 +01:00
2020-11-24 13:46:13 +01:00
return this.http.post<Event>(`${puturl}`, event, options)
2021-06-16 13:29:57 +01:00
} */
2021-09-03 12:52:49 +01:00
2020-11-24 13:46:13 +01:00
postEventMd(event:Event, calendarName:string)
{
const puturl = environment.apiURL + 'calendar/md';
let params = new HttpParams();
params = params.set("CalendarName", calendarName);
2021-06-16 13:29:57 +01:00
let options:any;
switch (calendarName) {
case 'Oficial':
console.log(calendarName);
2021-09-03 12:52:49 +01:00
options = {
headers: this.headersMdOficial,
params: params
2021-06-16 13:29:57 +01:00
};
break;
2021-09-03 12:52:49 +01:00
2021-06-16 13:29:57 +01:00
case 'Pessoal':
console.log(calendarName);
2021-09-03 12:52:49 +01:00
options = {
headers: this.headersMdPessoal,
params: params
2021-06-16 13:29:57 +01:00
};
break;
}
console.log(options);
2021-04-19 15:21:35 +01:00
return this.http.post<string>(`${puturl}`, event, options)
2020-11-24 13:46:13 +01:00
}
postEventPr(event:Event, calendarName:string)
{
const puturl = environment.apiURL + 'calendar/pr';
let params = new HttpParams();
params = params.set("CalendarName", calendarName);
2020-08-21 16:18:37 +01:00
2021-06-16 13:29:57 +01:00
let options:any;
switch (calendarName) {
case 'Oficial':
console.log(calendarName);
2021-09-03 12:52:49 +01:00
options = {
headers: this.headersPrOficial,
params: params
2021-06-16 13:29:57 +01:00
};
break;
2021-09-03 12:52:49 +01:00
2021-06-16 13:29:57 +01:00
case 'Pessoal':
console.log(calendarName);
2021-09-03 12:52:49 +01:00
options = {
headers: this.headersPrPessoal,
params: params
2021-06-16 13:29:57 +01:00
};
break;
}
2021-09-03 12:52:49 +01:00
2021-04-19 15:21:35 +01:00
return this.http.post<string>(`${puturl}`, event, options)
}
2021-09-15 09:33:13 +01:00
deleteEvent(eventid:string, eventDeleteType:number, calendarName:string)
{
2020-11-25 11:25:08 +01:00
const puturl = environment.apiURL + 'calendar/DeleteEvent';
let params = new HttpParams();
params = params.set("EventId", eventid);
2021-07-12 11:20:08 +01:00
// 0 for occurence and 1 for serie (delete all events)
params = params.set("eventDeleteType", eventDeleteType.toString());
2021-09-15 09:33:13 +01:00
let options;
switch (this.loggeduser.Profile) {
case 'MDGPR':
if(calendarName == 'Pessoal'){
options = {
headers: this.headersMdPessoal,
params: params
};
}
else if(calendarName == 'Oficial'){
options = {
headers: this.headersMdOficial,
params: params
};
}
break;
case 'PR':
if(calendarName == 'Pessoal'){
options = {
headers: this.headersPrPessoal,
params: params
};
}
else if(calendarName == 'Oficial'){
options = {
headers: this.headersPrOficial,
params: params
};
}
break;
}
2021-09-03 12:52:49 +01:00
return this.http.delete(`${puturl}`, options)
}
2021-04-22 09:35:13 +01:00
postExpedientEvent(docId:any, body:any, sharedagenda:string, serialNumber:any, applicationID:any){
2021-04-05 14:13:13 +01:00
const geturl = environment.apiURL + 'calendar/' + ((sharedagenda != '') ? sharedagenda : 'CreateEventExpediente')+'/event';
let params = new HttpParams();
2021-06-21 11:00:06 +01:00
let options;
params = params.set("DocId", docId);
2020-11-25 11:25:08 +01:00
params = params.set("SerialNumber", serialNumber);
2021-04-22 09:35:13 +01:00
params = params.set("applicationID", applicationID);
2021-06-21 11:00:06 +01:00
switch (this.loggeduser.Profile) {
case 'MDGPR':
if(body.CalendarName == 'Pessoal'){
2021-09-03 12:52:49 +01:00
options = {
2021-06-21 11:00:06 +01:00
headers: this.headersMdPessoal,
2021-09-03 12:52:49 +01:00
params: params
2021-06-21 11:00:06 +01:00
};
}
else if(body.CalendarName == 'Oficial'){
2021-09-03 12:52:49 +01:00
options = {
2021-06-21 11:00:06 +01:00
headers: this.headersMdOficial,
2021-09-03 12:52:49 +01:00
params: params
2021-06-21 11:00:06 +01:00
};
}
break;
case 'PR':
if(body.CalendarName == 'Pessoal'){
2021-09-03 12:52:49 +01:00
options = {
2021-06-21 11:00:06 +01:00
headers: this.headersPrPessoal,
2021-09-03 12:52:49 +01:00
params: params
2021-06-21 11:00:06 +01:00
};
}
else if(body.CalendarName == 'Oficial'){
2021-09-03 12:52:49 +01:00
options = {
2021-06-21 11:00:06 +01:00
headers: this.headersPrOficial,
2021-09-03 12:52:49 +01:00
params: params
2021-06-21 11:00:06 +01:00
};
}
break;
}
2021-05-25 13:38:46 +01:00
return this.http.post<any>(`${geturl}`, body, options)
2021-04-30 12:07:51 +01:00
}
createTaskEvent(folderId:any, body:any, sharedagenda:string, serialNumber:any, applicationID:any){
const geturl = environment.apiURL + 'calendar/' + ((sharedagenda != '') ? sharedagenda : 'CreateEventExpediente')+'/dispatch';
let params = new HttpParams();
2021-06-22 15:39:28 +01:00
let options;
2021-04-30 12:07:51 +01:00
params = params.set("FolderId", folderId);
params = params.set("SerialNumber", serialNumber);
params = params.set("applicationID", applicationID);
2021-06-22 15:39:28 +01:00
switch (this.loggeduser.Profile) {
case 'MDGPR':
if(body.CalendarName == 'Pessoal'){
2021-09-03 12:52:49 +01:00
options = {
2021-06-22 15:39:28 +01:00
headers: this.headersMdPessoal,
2021-09-03 12:52:49 +01:00
params: params
2021-06-22 15:39:28 +01:00
};
}
else if(body.CalendarName == 'Oficial'){
2021-09-03 12:52:49 +01:00
options = {
2021-06-22 15:39:28 +01:00
headers: this.headersMdOficial,
2021-09-03 12:52:49 +01:00
params: params
2021-06-22 15:39:28 +01:00
};
}
break;
case 'PR':
if(body.CalendarName == 'Pessoal'){
2021-09-03 12:52:49 +01:00
options = {
2021-06-22 15:39:28 +01:00
headers: this.headersPrPessoal,
2021-09-03 12:52:49 +01:00
params: params
2021-06-22 15:39:28 +01:00
};
}
else if(body.CalendarName == 'Oficial'){
2021-09-03 12:52:49 +01:00
options = {
2021-06-22 15:39:28 +01:00
headers: this.headersPrOficial,
2021-09-03 12:52:49 +01:00
params: params
2021-06-22 15:39:28 +01:00
};
}
break;
}
2021-05-25 13:38:46 +01:00
return this.http.post<any>(`${geturl}`, body, options)
}
2021-05-14 14:37:38 +01:00
postEventToApproveEdit(body: EventToApproveEdit) {
const geturl = environment.apiURL + 'Tasks/EditEventTask';
2021-09-03 12:52:49 +01:00
let options = {
2021-05-14 14:37:38 +01:00
headers: this.headers,
};
return this.http.post<any>(`${geturl}`, body, options)
}
}