backend: add car
This commit is contained in:
67
go-backend/internal/services/car_service.go
Normal file
67
go-backend/internal/services/car_service.go
Normal file
@@ -0,0 +1,67 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"GoMembership/internal/models"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type CarServiceInterface interface {
|
||||
Create(car *models.Car) (*models.Car, error)
|
||||
Update(car *models.Car) (*models.Car, error)
|
||||
Delete(carID *uint) error
|
||||
FromID(id uint) (*models.Car, error)
|
||||
GetAll() (*[]models.Car, error)
|
||||
}
|
||||
|
||||
type CarService struct {
|
||||
DB *gorm.DB
|
||||
}
|
||||
|
||||
// Create a new car
|
||||
func (s *CarService) Create(car *models.Car) (*models.Car, error) {
|
||||
|
||||
err := car.Create(s.DB)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return car, nil
|
||||
}
|
||||
|
||||
// Update an existing car
|
||||
func (s *CarService) Update(car *models.Car) (*models.Car, error) {
|
||||
err := car.Update(s.DB)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return car, nil
|
||||
}
|
||||
|
||||
// Delete a car (soft delete)
|
||||
func (s *CarService) Delete(carID *uint) error {
|
||||
var car models.Car
|
||||
err := car.FromID(s.DB, *carID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return car.Delete(s.DB)
|
||||
}
|
||||
|
||||
// GetByID fetches a car by its ID
|
||||
func (s *CarService) FromID(id uint) (*models.Car, error) {
|
||||
car := &models.Car{}
|
||||
err := car.FromID(s.DB, id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return car, nil
|
||||
}
|
||||
|
||||
// GetAll retrieves all cars
|
||||
func (s *CarService) GetAll() (*[]models.Car, error) {
|
||||
var cars []models.Car
|
||||
if err := s.DB.Find(&cars).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &cars, nil
|
||||
}
|
||||
Reference in New Issue
Block a user