replace id type

This commit is contained in:
kandrusyak
2023-07-18 01:16:04 +03:00
parent b74291f449
commit 03cb8c3e38
4 changed files with 26 additions and 20 deletions

View File

@@ -4,6 +4,7 @@ import (
"astra-events/model" "astra-events/model"
"astra-events/pkg/utils" "astra-events/pkg/utils"
"astra-events/services" "astra-events/services"
"github.com/google/uuid"
"github.com/hashicorp/go-set" "github.com/hashicorp/go-set"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
"net/http" "net/http"
@@ -12,8 +13,8 @@ import (
func (h *Handler) CreateEvent(c echo.Context) (err error) { func (h *Handler) CreateEvent(c echo.Context) (err error) {
event := new(model.CreateEvent) event := new(model.CreateEvent)
authorId, err := strconv.Atoi(c.Request().Header.Get("UserId")) authorId, err := uuid.Parse(c.Request().Header.Get("UserId"))
orgId, err := strconv.Atoi(c.Request().Header.Get("UserOrganizationId")) orgId, err := uuid.Parse(c.Request().Header.Get("UserOrganizationId"))
if err != nil { if err != nil {
return c.NoContent(http.StatusUnauthorized) return c.NoContent(http.StatusUnauthorized)
@@ -23,19 +24,19 @@ func (h *Handler) CreateEvent(c echo.Context) (err error) {
return c.NoContent(http.StatusBadRequest) 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 { if err != nil {
return c.HTML(http.StatusBadGateway, err.Error()) return c.HTML(http.StatusBadGateway, err.Error())
} }
employee := usersMap[event.EmployeeId] employee := usersMap[event.EmployeeId]
author := usersMap[uint(authorId)] author := usersMap[authorId]
newEvent, err := utils.TypeConverter[model.Event](event) newEvent, err := utils.TypeConverter[model.Event](event)
newEvent.OrgId = uint(orgId) newEvent.OrgId = orgId
newEvent.AuthorId = uint(authorId) newEvent.AuthorId = authorId
tx := h.DB.Create(&newEvent) tx := h.DB.Create(&newEvent)
@@ -53,7 +54,7 @@ func (h *Handler) GetEvents(c echo.Context) (err error) {
var events []model.Event var events []model.Event
query := c.Request().URL.Query() query := c.Request().URL.Query()
_, _, filterMap := utils.GetFilterParams(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 { if err != nil {
return c.NoContent(http.StatusUnauthorized) return c.NoContent(http.StatusUnauthorized)
@@ -67,7 +68,7 @@ func (h *Handler) GetEvents(c echo.Context) (err error) {
tx.Find(&events) tx.Find(&events)
ids := set.New[uint](len(events) * 2) ids := set.New[uuid.UUID](len(events) * 2)
for _, event := range events { for _, event := range events {
ids.Insert(event.EmployeeId) ids.Insert(event.EmployeeId)
@@ -102,7 +103,7 @@ func (h *Handler) GetEvent(c echo.Context) error {
return c.NoContent(http.StatusNotFound) 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 { if err != nil {
return c.HTML(http.StatusBadGateway, err.Error()) return c.HTML(http.StatusBadGateway, err.Error())

View File

@@ -13,24 +13,24 @@ type Event struct {
Start time.Time `json:"start"` Start time.Time `json:"start"`
End time.Time `json:"end"` End time.Time `json:"end"`
Author User `json:"author" gorm:"-"` Author User `json:"author" gorm:"-"`
AuthorId uint `json:"-"` AuthorId uuid.UUID `json:"-"`
Employee User `json:"employee" gorm:"-"` Employee User `json:"employee" gorm:"-"`
EmployeeId uint `json:"-"` EmployeeId uuid.UUID `json:"-"`
Member PD `json:"member" gorm:"-"` Member PD `json:"member" gorm:"-"`
MemberId uint `json:"-"` MemberId uuid.UUID `json:"-"`
Status string `json:"status"` Status string `json:"status"`
MedicalCard Card `json:"medicalCard" gorm:"-"` MedicalCard Card `json:"medicalCard" gorm:"-"`
MedicalCardId uint `json:"-"` MedicalCardId uuid.UUID `json:"-"`
Services pq.Int32Array `json:"services" gorm:"type:integer[]"` Services pq.Int32Array `json:"services" gorm:"type:integer[]"`
OrgId uint `json:"-"` OrgId uuid.UUID `json:"-"`
} }
type CreateEvent struct { type CreateEvent struct {
Start time.Time `json:"start"` Start time.Time `json:"start"`
End time.Time `json:"end"` End time.Time `json:"end"`
EmployeeId uint `json:"employee_id"` EmployeeId uuid.UUID `json:"employee_id"`
MemberId uint `json:"member_id"` MemberId uuid.UUID `json:"member_id"`
Status string `json:"status"` Status string `json:"status"`
MedicalCardId uint `json:"medical_card_id"` MedicalCardId uuid.UUID `json:"medical_card_id"`
Services []int32 `json:"services"` Services []int32 `json:"services"`
} }

View File

@@ -1,9 +1,13 @@
package model package model
import "gorm.io/gorm" import (
"github.com/google/uuid"
"gorm.io/gorm"
)
type ( type (
User struct { User struct {
ID uuid.UUID
gorm.Model gorm.Model
UserName string `json:"user_name" gorm:"unique"` UserName string `json:"user_name" gorm:"unique"`
Password string `json:"password,omitempty"` Password string `json:"password,omitempty"`

View File

@@ -6,6 +6,7 @@ import (
"astra-events/pkg/api" "astra-events/pkg/api"
"encoding/json" "encoding/json"
"errors" "errors"
"github.com/google/uuid"
"net/http" "net/http"
"net/url" "net/url"
"strconv" "strconv"
@@ -33,9 +34,9 @@ func GetUser(ID uint, header http.Header) (*model.User, error) {
return u, nil 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 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) Url, err := url.Parse(config.Env.MSHosts.UsersHost)
if err != nil { if err != nil {
return nil, err return nil, err