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)
|
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 {
|
for _, event := range events {
|
||||||
ids.Insert(event.MedicId)
|
userIds.Insert(event.MedicId)
|
||||||
ids.Insert(event.AuthorId)
|
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 {
|
if err != nil {
|
||||||
return c.HTML(http.StatusBadGateway, err.Error())
|
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 {
|
for i, event := range events {
|
||||||
events[i].Author = usersMap[event.AuthorId]
|
events[i].Author = usersMap[event.AuthorId]
|
||||||
events[i].Medic = usersMap[event.MedicId]
|
events[i].Medic = usersMap[event.MedicId]
|
||||||
|
events[i].Person = personsMap[event.PersonId]
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.JSON(http.StatusOK, events)
|
return c.JSON(http.StatusOK, events)
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ import (
|
|||||||
"net/http"
|
"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)
|
uJson, err := json.Marshal(model)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
client := http.Client{}
|
client := http.Client{}
|
||||||
@@ -22,16 +22,16 @@ func PostRequest(url string, model any, header http.Header) ([]byte, error) {
|
|||||||
resp, err := client.Do(req)
|
resp, err := client.Do(req)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
data, err := io.ReadAll(resp.Body)
|
data, err := io.ReadAll(resp.Body)
|
||||||
|
|
||||||
if err != nil {
|
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) {
|
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) {
|
func CreatePerson(person model.PersonalInformationCreate, header http.Header) (*model.PersonalInformation, error) {
|
||||||
data, err := api.PostRequest(
|
data, err, _ := api.PostRequest(
|
||||||
config.Env.MSHosts.PersonsHost+"/persons/",
|
config.Env.MSHosts.PersonsHost+"/persons/",
|
||||||
person,
|
person,
|
||||||
header,
|
header,
|
||||||
@@ -50,3 +50,37 @@ func CreatePerson(person model.PersonalInformationCreate, header http.Header) (*
|
|||||||
|
|
||||||
return pi, nil
|
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