diff --git a/handler/event.go b/handler/event.go index 1fa2c81..4d2e212 100644 --- a/handler/event.go +++ b/handler/event.go @@ -4,6 +4,7 @@ import ( "astra-events/model" "astra-events/pkg/utils" "astra-events/services" + "github.com/google/uuid" "github.com/hashicorp/go-set" "github.com/labstack/echo/v4" "net/http" @@ -12,8 +13,8 @@ import ( func (h *Handler) CreateEvent(c echo.Context) (err error) { event := new(model.CreateEvent) - authorId, err := strconv.Atoi(c.Request().Header.Get("UserId")) - orgId, err := strconv.Atoi(c.Request().Header.Get("UserOrganizationId")) + 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 +24,19 @@ func (h *Handler) CreateEvent(c echo.Context) (err error) { return c.NoContent(http.StatusBadRequest) } - usersMap, err := services.GetUsers([]uint{event.EmployeeId, uint(authorId)}, c.Request().Header) + usersMap, err := services.GetUsers([]uuid.UUID{event.EmployeeId, authorId}, c.Request().Header) if err != nil { return c.HTML(http.StatusBadGateway, err.Error()) } employee := usersMap[event.EmployeeId] - author := usersMap[uint(authorId)] + author := usersMap[authorId] newEvent, err := utils.TypeConverter[model.Event](event) - newEvent.OrgId = uint(orgId) - newEvent.AuthorId = uint(authorId) + newEvent.OrgId = orgId + newEvent.AuthorId = authorId tx := h.DB.Create(&newEvent) @@ -53,7 +54,7 @@ func (h *Handler) GetEvents(c echo.Context) (err error) { var events []model.Event query := c.Request().URL.Query() _, _, filterMap := utils.GetFilterParams(query) - orgId, err := strconv.Atoi(c.Request().Header.Get("UserOrganizationId")) + orgId, err := uuid.Parse(c.Request().Header.Get("UserOrganizationId")) if err != nil { return c.NoContent(http.StatusUnauthorized) @@ -67,7 +68,7 @@ func (h *Handler) GetEvents(c echo.Context) (err error) { tx.Find(&events) - ids := set.New[uint](len(events) * 2) + ids := set.New[uuid.UUID](len(events) * 2) for _, event := range events { ids.Insert(event.EmployeeId) @@ -102,7 +103,7 @@ func (h *Handler) GetEvent(c echo.Context) error { return c.NoContent(http.StatusNotFound) } - usersMap, err := services.GetUsers([]uint{event.EmployeeId, event.AuthorId}, c.Request().Header) + usersMap, err := services.GetUsers([]uuid.UUID{event.EmployeeId, event.AuthorId}, c.Request().Header) if err != nil { return c.HTML(http.StatusBadGateway, err.Error()) diff --git a/model/event.go b/model/event.go index 05c6c56..cae6d13 100644 --- a/model/event.go +++ b/model/event.go @@ -13,24 +13,24 @@ type Event struct { Start time.Time `json:"start"` End time.Time `json:"end"` Author User `json:"author" gorm:"-"` - AuthorId uint `json:"-"` + AuthorId uuid.UUID `json:"-"` Employee User `json:"employee" gorm:"-"` - EmployeeId uint `json:"-"` + EmployeeId uuid.UUID `json:"-"` Member PD `json:"member" gorm:"-"` - MemberId uint `json:"-"` + MemberId uuid.UUID `json:"-"` Status string `json:"status"` MedicalCard Card `json:"medicalCard" gorm:"-"` - MedicalCardId uint `json:"-"` + MedicalCardId uuid.UUID `json:"-"` Services pq.Int32Array `json:"services" gorm:"type:integer[]"` - OrgId uint `json:"-"` + OrgId uuid.UUID `json:"-"` } type CreateEvent struct { Start time.Time `json:"start"` End time.Time `json:"end"` - EmployeeId uint `json:"employee_id"` - MemberId uint `json:"member_id"` + EmployeeId uuid.UUID `json:"employee_id"` + MemberId uuid.UUID `json:"member_id"` Status string `json:"status"` - MedicalCardId uint `json:"medical_card_id"` + MedicalCardId uuid.UUID `json:"medical_card_id"` Services []int32 `json:"services"` } diff --git a/model/user.go b/model/user.go index 54fb034..567854b 100644 --- a/model/user.go +++ b/model/user.go @@ -1,9 +1,13 @@ package model -import "gorm.io/gorm" +import ( + "github.com/google/uuid" + "gorm.io/gorm" +) type ( User struct { + ID uuid.UUID gorm.Model UserName string `json:"user_name" gorm:"unique"` Password string `json:"password,omitempty"` diff --git a/services/users.go b/services/users.go index b9326f0..208518b 100644 --- a/services/users.go +++ b/services/users.go @@ -6,6 +6,7 @@ import ( "astra-events/pkg/api" "encoding/json" "errors" + "github.com/google/uuid" "net/http" "net/url" "strconv" @@ -33,9 +34,9 @@ func GetUser(ID uint, header http.Header) (*model.User, error) { return u, nil } -func GetUsers(ids []uint, header http.Header) (map[uint]model.User, error) { +func GetUsers(ids []uuid.UUID, header http.Header) (map[uuid.UUID]model.User, error) { var users []model.User - var usersMap = make(map[uint]model.User) + var usersMap = make(map[uuid.UUID]model.User) Url, err := url.Parse(config.Env.MSHosts.UsersHost) if err != nil { return nil, err