/
Arsinenko
/
CompClubAPI_Go
Обзор
Документация
Войти
/
Arsinenko
/
CompClubAPI_Go
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
internal/services/equipment_service.go
104 строки
3 KB
Arsinenko
function renamed
15 окт 2025, 14:27
15 окт 2025, 14:27
ba92495
Код
Авторство
О чём код?
package services import ( "CompClubAPI/internal/database/gen" "context" "database/sql" "errors" ) type EquipmentResponse struct { Id int32 `json:"id"` Name string `json:"name"` WorkingSpace int32 `json:"working_space"` Status bool `json:"status"` } type CreateEquipmentRequest struct { Name string `json:"name"` WorkingSpace int32 `json:"working_space"` Status bool `json:"status"` } type UpdateEquipmentRequest struct { Id int32 `json:"id"` Name string `json:"name"` WorkingSpace int32 `json:"working_space"` Status bool `json:"status"` } type EquipmentService interface { BuyEquipment(req CreateEquipmentRequest) (EquipmentResponse, error) GetEquipment(id int32) (EquipmentResponse, error) GetAllEquipments() ([]EquipmentResponse, error) ChangeStatus(id int32) error DeleteEquipment(id int32) error } type equipmentService struct { queries *gen.Queries } func NewEquipmentService(queries *gen.Queries) EquipmentService { return &equipmentService{queries: queries} } func (e equipmentService) BuyEquipment(req CreateEquipmentRequest) (EquipmentResponse, error) { equipment, err := e.queries.BuyEquipment(context.Background(), gen.BuyEquipmentParams{ Name: req.Name, WorkingSpace: req.WorkingSpace, }) if err != nil { return EquipmentResponse{}, err } return EquipmentResponse{ Id: equipment.ID, Name: equipment.Name, WorkingSpace: equipment.WorkingSpace, Status: equipment.Status.Bool, }, nil } func (e equipmentService) GetEquipment(id int32) (EquipmentResponse, error) { equipment, err := e.queries.GetEquipment(context.Background(), id) if err != nil { if errors.Is(err, sql.ErrNoRows) { return EquipmentResponse{}, errors.New("equipment not found") } return EquipmentResponse{}, err } return EquipmentResponse{ Id: equipment.ID, Name: equipment.Name, WorkingSpace: equipment.WorkingSpace, Status: equipment.Status.Bool, }, nil } func (e equipmentService) GetAllEquipments() ([]EquipmentResponse, error) { equipments, err := e.queries.GetAllEquipments(context.Background()) if err != nil { if errors.Is(err, sql.ErrNoRows) { return []EquipmentResponse{}, errors.New("equipments not found") } return []EquipmentResponse{}, err } result := make([]EquipmentResponse, len(equipments)) for i, equipment := range equipments { result[i] = EquipmentResponse{ Id: equipment.ID, Name: equipment.Name, WorkingSpace: equipment.WorkingSpace, Status: equipment.Status.Bool, } } return result, nil } func (e equipmentService) ChangeStatus(id int32) error { return e.queries.ChangeStatus(context.Background(), id) } func (e equipmentService) DeleteEquipment(id int32) error { return e.queries.DeleteEquipment(context.Background(), id) }