add request to personal information
This commit is contained in:
@@ -108,14 +108,17 @@ func (h *Handler) GetEvents(c echo.Context) (err error) {
|
||||
|
||||
tx.Find(&events)
|
||||
|
||||
ids := set.New[uuid.UUID](len(events) * 2)
|
||||
userIds := set.New[uuid.UUID](len(events) * 2)
|
||||
personIds := set.New[uuid.UUID](len(events))
|
||||
|
||||
for _, event := range events {
|
||||
ids.Insert(event.MedicId)
|
||||
ids.Insert(event.AuthorId)
|
||||
userIds.Insert(event.MedicId)
|
||||
userIds.Insert(event.AuthorId)
|
||||
personIds.Insert(event.PersonId)
|
||||
}
|
||||
|
||||
usersMap, err := services.GetUsers(ids.Slice(), c.Request().Header)
|
||||
usersMap, err := services.GetUsers(userIds.Slice(), c.Request().Header)
|
||||
personsMap, err := services.GetPersons(personIds.Slice(), c.Request().Header)
|
||||
if err != nil {
|
||||
return c.HTML(http.StatusBadGateway, err.Error())
|
||||
}
|
||||
@@ -123,6 +126,7 @@ func (h *Handler) GetEvents(c echo.Context) (err error) {
|
||||
for i, event := range events {
|
||||
events[i].Author = usersMap[event.AuthorId]
|
||||
events[i].Medic = usersMap[event.MedicId]
|
||||
events[i].Person = personsMap[event.PersonId]
|
||||
}
|
||||
|
||||
return c.JSON(http.StatusOK, events)
|
||||
|
||||
@@ -7,11 +7,11 @@ import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func PostRequest(url string, model any, header http.Header) ([]byte, error) {
|
||||
func PostRequest(url string, model any, header http.Header) ([]byte, error, *http.Response) {
|
||||
uJson, err := json.Marshal(model)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, err, nil
|
||||
}
|
||||
|
||||
client := http.Client{}
|
||||
@@ -22,16 +22,16 @@ func PostRequest(url string, model any, header http.Header) ([]byte, error) {
|
||||
resp, err := client.Do(req)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, err, nil
|
||||
}
|
||||
|
||||
data, err := io.ReadAll(resp.Body)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, err, nil
|
||||
}
|
||||
|
||||
return data, nil
|
||||
return data, nil, resp
|
||||
}
|
||||
|
||||
func GetRequest(url string, header http.Header, args ...string) ([]byte, error, *http.Response) {
|
||||
|
||||
@@ -31,7 +31,7 @@ func GetPerson(id uuid.UUID, header http.Header) (*model.PersonalInformation, er
|
||||
}
|
||||
|
||||
func CreatePerson(person model.PersonalInformationCreate, header http.Header) (*model.PersonalInformation, error) {
|
||||
data, err := api.PostRequest(
|
||||
data, err, _ := api.PostRequest(
|
||||
config.Env.MSHosts.PersonsHost+"/persons/",
|
||||
person,
|
||||
header,
|
||||
@@ -50,3 +50,37 @@ func CreatePerson(person model.PersonalInformationCreate, header http.Header) (*
|
||||
|
||||
return pi, nil
|
||||
}
|
||||
|
||||
func GetPersons(ids []uuid.UUID, header http.Header) (map[uuid.UUID]model.PersonalInformation, error) {
|
||||
type BatchBody struct {
|
||||
ids []uuid.UUID
|
||||
}
|
||||
|
||||
var persons []model.PersonalInformation
|
||||
personsMap := make(map[uuid.UUID]model.PersonalInformation)
|
||||
|
||||
jsonIds, err := json.Marshal(&BatchBody{
|
||||
ids: ids,
|
||||
})
|
||||
|
||||
data, err, req := api.PostRequest(
|
||||
config.Env.MSHosts.PersonsHost+"/persons/batch/",
|
||||
jsonIds,
|
||||
header)
|
||||
|
||||
if err != nil || req.StatusCode != 200 {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(data, &persons)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
for _, person := range persons {
|
||||
personsMap[person.ID] = person
|
||||
}
|
||||
|
||||
return personsMap, nil
|
||||
}
|
||||
Reference in New Issue
Block a user