package services import ( "astra-events/config" "astra-events/model" "astra-events/pkg/api" "encoding/json" "errors" "net/http" "net/url" "strconv" ) func GetUser(ID uint, header http.Header) (*model.User, error) { id := strconv.Itoa(int(ID)) data, err, _ := api.GetRequest( config.Env.MSHosts.UsersHost+"/"+id, header) if err != nil { return nil, errors.New("error Request to Users Service") } u := new(model.User) err = json.Unmarshal(data, &u) if err != nil { return nil, errors.New("bad Response from Users Service") } return u, nil } func GetUsers(ids []uint, header http.Header) (map[uint]model.User, error) { var users []model.User var usersMap = make(map[uint]model.User) Url, err := url.Parse(config.Env.MSHosts.UsersHost) if err != nil { return nil, err } jsonIds, err := json.Marshal(ids) Url.Path += "/batch/" + string(jsonIds[:]) data, err, req := api.GetRequest( Url.String(), header) if err != nil || req.StatusCode != 200 { return nil, err } err = json.Unmarshal(data, &users) if err != nil { return nil, err } for _, user := range users { usersMap[user.ID] = user } return usersMap, nil }