package services import ( "astra-events/config" "astra-events/model" "astra-events/pkg/api" "encoding/json" "errors" "github.com/google/uuid" "net/http" ) func GetPerson(id uuid.UUID, header http.Header) (*model.PersonalInformation, error) { data, err, _ := api.GetRequest( config.Env.MSHosts.PersonsHost+"/persons/"+id.String(), header) if err != nil { return nil, errors.New("error Request to Personal Information Service") } pi := new(model.PersonalInformation) err = json.Unmarshal(data, &pi) if err != nil { return nil, errors.New("bad Response from Personal Information Service") } return pi, nil } func CreatePerson(person model.PersonalInformationCreate, header http.Header) (*model.PersonalInformation, error) { data, err, _ := api.PostRequest( config.Env.MSHosts.PersonsHost+"/persons/", person, header, ) if err != nil { return nil, errors.New("error Request to Personal Information Service") } pi := new(model.PersonalInformation) err = json.Unmarshal(data, &pi) if err != nil { return nil, errors.New("bad Response from Personal Information Service") } return pi, nil } func GetPersons(ids []uuid.UUID, header http.Header) (map[uuid.UUID]model.PersonalInformation, error) { var persons []model.PersonalInformation personsMap := make(map[uuid.UUID]model.PersonalInformation) jsonIds, err := json.Marshal(&map[string][]uuid.UUID{ "ids": ids, }) if err != nil { return nil, err } 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 }