update events
This commit is contained in:
@@ -11,10 +11,10 @@ import (
|
||||
)
|
||||
|
||||
func (h *Handler) CreateEvent(c echo.Context) (err error) {
|
||||
var person *model.PersonalInformation
|
||||
event := new(model.CreateEvent)
|
||||
authorId, err := uuid.Parse(c.Request().Header.Get("UserId"))
|
||||
orgId, err := uuid.Parse(c.Request().Header.Get("UserOrganizationId"))
|
||||
|
||||
if err != nil {
|
||||
return c.NoContent(http.StatusUnauthorized)
|
||||
}
|
||||
@@ -23,19 +23,46 @@ func (h *Handler) CreateEvent(c echo.Context) (err error) {
|
||||
return c.NoContent(http.StatusBadRequest)
|
||||
}
|
||||
|
||||
usersMap, err := services.GetUsers([]uuid.UUID{event.EmployeeId, authorId}, c.Request().Header)
|
||||
if event.Person.ID.ID() != 0 {
|
||||
person, err = services.GetPerson(event.Person.ID, c.Request().Header)
|
||||
if err != nil || person.ID != event.Person.ID {
|
||||
return c.NoContent(http.StatusBadRequest)
|
||||
}
|
||||
} else {
|
||||
newPerson := model.PersonalInformationCreate{
|
||||
FirstName: event.Person.FirstName,
|
||||
LastName: event.Person.LastName,
|
||||
Patronymic: event.Person.Patronymic,
|
||||
Contacts: []model.Contact{
|
||||
{
|
||||
Category: "PHONE",
|
||||
Value: event.Person.Phone,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return c.HTML(http.StatusBadGateway, err.Error())
|
||||
person, err = services.CreatePerson(newPerson, c.Request().Header)
|
||||
if err != nil || person.ID.ID() == 0 {
|
||||
return c.NoContent(http.StatusBadRequest)
|
||||
}
|
||||
}
|
||||
|
||||
employee := usersMap[event.EmployeeId]
|
||||
usersMap, err := services.GetUsers([]uuid.UUID{event.MedicId, authorId}, c.Request().Header)
|
||||
|
||||
if err != nil || len(usersMap) == 0 {
|
||||
return c.HTML(http.StatusBadGateway, "Error get users")
|
||||
}
|
||||
|
||||
medic := usersMap[event.MedicId]
|
||||
author := usersMap[authorId]
|
||||
|
||||
newEvent, err := utils.TypeConverter[model.Event](event)
|
||||
|
||||
newEvent.OrgId = orgId
|
||||
newEvent.MedicId = event.MedicId
|
||||
newEvent.AuthorId = authorId
|
||||
newEvent.PersonId = person.ID
|
||||
newEvent.Person = *person
|
||||
|
||||
tx := h.DB.Create(&newEvent)
|
||||
|
||||
@@ -44,7 +71,7 @@ func (h *Handler) CreateEvent(c echo.Context) (err error) {
|
||||
}
|
||||
|
||||
newEvent.Author = author
|
||||
newEvent.Employee = employee
|
||||
newEvent.Medic = medic
|
||||
|
||||
return c.JSON(http.StatusCreated, newEvent)
|
||||
}
|
||||
@@ -70,7 +97,7 @@ func (h *Handler) GetEvents(c echo.Context) (err error) {
|
||||
ids := set.New[uuid.UUID](len(events) * 2)
|
||||
|
||||
for _, event := range events {
|
||||
ids.Insert(event.EmployeeId)
|
||||
ids.Insert(event.MedicId)
|
||||
ids.Insert(event.AuthorId)
|
||||
}
|
||||
|
||||
@@ -81,7 +108,7 @@ func (h *Handler) GetEvents(c echo.Context) (err error) {
|
||||
|
||||
for i, event := range events {
|
||||
events[i].Author = usersMap[event.AuthorId]
|
||||
events[i].Employee = usersMap[event.EmployeeId]
|
||||
events[i].Medic = usersMap[event.MedicId]
|
||||
}
|
||||
|
||||
return c.JSON(http.StatusOK, events)
|
||||
@@ -102,16 +129,16 @@ func (h *Handler) GetEvent(c echo.Context) error {
|
||||
return c.NoContent(http.StatusNotFound)
|
||||
}
|
||||
|
||||
usersMap, err := services.GetUsers([]uuid.UUID{event.EmployeeId, event.AuthorId}, c.Request().Header)
|
||||
usersMap, err := services.GetUsers([]uuid.UUID{event.MedicId, event.AuthorId}, c.Request().Header)
|
||||
|
||||
if err != nil {
|
||||
return c.HTML(http.StatusBadGateway, err.Error())
|
||||
}
|
||||
|
||||
employee := usersMap[event.EmployeeId]
|
||||
medic := usersMap[event.MedicId]
|
||||
author := usersMap[event.AuthorId]
|
||||
|
||||
event.Employee = employee
|
||||
event.Medic = medic
|
||||
event.Author = author
|
||||
|
||||
return c.JSON(http.StatusOK, event)
|
||||
|
||||
Reference in New Issue
Block a user