|
|
@@ -1,7 +1,6 @@
|
|
|
package model
|
|
|
|
|
|
import (
|
|
|
- "database/sql"
|
|
|
"errors"
|
|
|
"fmt"
|
|
|
"gorm.io/gorm"
|
|
|
@@ -17,33 +16,31 @@ type AvailabilityArray struct {
|
|
|
AvailabilityArray []Availability `binding:"dive" json:"items"`
|
|
|
}
|
|
|
|
|
|
-func (availability *Availability) CreateOrUpdate() {
|
|
|
- database.Database.Exec(
|
|
|
- `UPDATE public.availability SET available = @available WHERE code_car_ca_de = @code;
|
|
|
- INSERT INTO public.availability (code_car_ca_de, available)
|
|
|
- SELECT @code, @available
|
|
|
- WHERE NOT EXISTS (SELECT 1 FROM public.availability WHERE code_car_ca_de = @code);`,
|
|
|
- sql.Named("available", availability.Available),
|
|
|
- sql.Named("code", availability.CodeCarCaDe))
|
|
|
+func (availability *Availability) CreateOrUpdate() error {
|
|
|
+ err := database.Database.Save(&availability).Error
|
|
|
+ if err != nil {
|
|
|
+ return fmt.Errorf("не удалось сохранить код %s", availability.CodeCarCaDe)
|
|
|
+ }
|
|
|
+ return nil
|
|
|
}
|
|
|
|
|
|
func GetAllAvailability() ([]Availability, error) {
|
|
|
var availability []Availability
|
|
|
- result := database.Database.Find(&availability)
|
|
|
- if result.Error != nil {
|
|
|
- return availability, result.Error
|
|
|
+ err := database.Database.Find(&availability).Error
|
|
|
+ if err != nil {
|
|
|
+ return availability, err
|
|
|
}
|
|
|
return availability, nil
|
|
|
}
|
|
|
|
|
|
func GetOneAvailability(code string) (Availability, error) {
|
|
|
- var av Availability
|
|
|
- err := database.Database.First(&av, code).Error
|
|
|
+ var availability Availability
|
|
|
+ err := database.Database.First(&availability, code).Error
|
|
|
if err != nil {
|
|
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
|
|
- return av, errors.New(fmt.Sprintf("Объект с кодом %s не найден", code))
|
|
|
+ return availability, fmt.Errorf("объект с кодом %s не найден", code)
|
|
|
}
|
|
|
- return av, err
|
|
|
+ return availability, err
|
|
|
}
|
|
|
- return av, nil
|
|
|
+ return availability, nil
|
|
|
}
|