add either pattern

This commit is contained in:
Peter Maquiran
2024-05-30 12:03:30 +01:00
parent 3c4ec1a432
commit 746db6f583
9 changed files with 410 additions and 85 deletions
@@ -11,6 +11,7 @@ import { EventListToApproveMapper } from './mapper/eventToApproveListMapper';
import { err, ok } from 'neverthrow';
import { of } from 'rxjs';
import { HttpErrorResponse } from '@angular/common/http';
import { EventToApproveDetailsMapper } from './mapper/EventToApproveDetailsMapper';
@Injectable({
providedIn: 'root'
@@ -22,20 +23,45 @@ export class AgendaDataRepositoryService {
private utils: Utils
) { }
getEventById(id: string) {
return this.agendaDataService.getEvent(id).pipe(
map((response) => {
return EventMapper.toDomain(response.data)
})
)
async getEventById(id: string) {
try {
const result = await this.agendaDataService.getEvent(id).pipe(
map((response) => {
return EventMapper.toDomain(response.data)
})
).toPromise()
return ok (result)
} catch (e) {
return err(e as HttpErrorResponse)
}
}
EventList({userId = null, startDate = null, endDate = null, status= 2, category= null, type= null, calendarOwnerName = ''}) {
return this.agendaDataService.getEvents(userId, startDate, endDate, status, category, type).pipe(
map((response) => {
return ListEventMapper.toDomain(response.data, calendarOwnerName, userId)
}
))
async getEventToApproveById(id: string) {
try {
const result = await this.agendaDataService.getEvent(id).pipe(
map((response) => {
return EventToApproveDetailsMapper.toDomain(response.data)
})
).toPromise()
return ok (result)
} catch (e) {
return err(e as HttpErrorResponse)
}
}
async EventList({userId = null, startDate = null, endDate = null, status= 2, category= null, type= null, calendarOwnerName = ''}) {
try {
const result = await this.agendaDataService.getEvents(userId, startDate, endDate, status, category, type).pipe(
map((response) => {
return ListEventMapper.toDomain(response.data, calendarOwnerName, userId)
}
)).toPromise()
return ok (result)
} catch (e) {
return err(e as HttpErrorResponse)
}
}
eventToApproveList({userId, startDate = null, endDate = null, status = 0, category= null, type= null, calendarOwnerName = ''}) {
@@ -0,0 +1,102 @@
import { EventToApproveDetails } from "src/app/models/entiry/agenda/eventToApproveDetails"
import { EventOutputDTO } from "../model/eventDTOOutput"
export class EventToApproveDetailsMapper {
constructor() {}
static toDomain(dto: EventOutputDTO): EventToApproveDetails {
return {
"serialNumber": dto.id,
"taskStatus": dto.status,
"originator": {
"email": dto.organizer.wxeMail,
"manager": "",
"displayName": "",
// "fqn": "K2:gabinetedigital\\dlima",
// "username": "gabinetedigital\\dlima"
},
// "isDelegated": false,
// "isExtended": false,
// "hasTakenAcknowledge": false,
// "actions": [
// "Reenviar",
// "Descartar"
// ],
"activityInstanceName": "Editar Evento",
// "workflowInstanceFolio": "MTk4",
// "taskStartDate": "2024-04-10T14:30:39.58",
// "deadline": null,
// "workflowID": 24744,
// "workflowInstanceID": 47026,
//"workflowName": "Agenda\\Agenda Oficial MDGPR",
"workflowDisplayName": "Agenda Oficial MDGPR",
//"formURL": "http://bpmdev.gabinetedigital.local/Runtime/Runtime/Form/Exchange+Calendar+Meeting+Edition/?SerialNo=47026_169&ProcessInstanceID=&InstanceId=",
"workflowInstanceDataFields": {
"Body": "safsafas",
"Location": "Luanda",
"Subject": "Event to approve MD",
"StartDate": "2024-04-10 00:00:00",
"EndDate": "2024-04-11 05:00:00",
// "Participants": "evilarinho@gabinetedigital.local",
// "CC": "",
// "ReviewUserComment": "{\r\n \"option\": \"save\",\r\n \"note\": \"\"\r\n}",
// "Role": 100000011,
// "MDName": "Eduardo Vilarinho",
// "MDEmail": "evilarinho@gabinetedigital.local",
// "OriginatorComments": "",
"Status": "Active",
//"TimeZone": "",
"Agenda": "Oficial",
"EventType": "Reunião",
//"EventID": "",
//"HasAttachments": true,
"ParticipantsList": [
...dto.attendees.map( e => ({
Name: e.name,
EmailAddress: e.emailAddress,
IsRequired: e.attendeeType == '0' ? true : false,
UserType: "GD",
}))
],
//"EventOrganizer": "{\"$type\":\"GabineteDigital.k2RESTidentifier_EventPerson, GabineteDigital, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\",\"EmailAddress\":\"agenda.mdgpr@gabinetedigital.local\",\"Name\":\"Agenda do Ministro e Director do Gabinete do PR\",\"IsRequired\":true}",
"CreateEvent": "",
"IsAllDayEvent": false,
//"SerializedItem": "",
//"MDwxUserID": 198,
//"DeserializedItem": "",
//"Message": "Foi adicionado para a sua agenda um evento com o assunto: Event to approve MD, para a vossa aprovação",
//"InstanceId": "AGD_dlima_2024-04-10_14:30:39.453",
//"For Each Result": "",
//"For Each Index": 0,
//"Header": "",
//"RecurringString": "",
//"LastOccurrence": "",
//"OccurrenceType": "-1",
//"SerialNumber": "",
//"For Each Result 1": "false",
//"For Each Index 1": 0,
//"UserEmail": "",
//"LastActivInstanceID": "78",
"IsRecurring": false,
//"CalendarId": "AQMkAGVhZWZkOGM0LWNiZjMtNGE4Ny05NTY4LWZjMTEANTE2MWU4YmUALgAAAwkDRuPtBKJItLDcu6efhYABACLK19NpGvtHh8oQYZPTW2sAAAIBSgAAAA==",
//"wxUserID": 312
},
"totalDocuments": null,
"Documents": null,
"PrivateMessage": null,
Attachments: dto.attachments.map( e => ({
DocId: '',
Description: '',
Stakeholders: '',
CreateDate: '',
ApplicationId: 0,
}))
}
}
static toDTO(data: any): any {
return {}
}
}