initial commit 2
This commit is contained in:
103
domain/service/ride.go
Normal file
103
domain/service/ride.go
Normal file
@@ -0,0 +1,103 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"bitbucket.org/nemt/nemt-portal-api/domain/entity"
|
||||
)
|
||||
|
||||
// userService is the domain service for user operations
|
||||
type rideService struct {
|
||||
svc *Service
|
||||
}
|
||||
|
||||
// newUserService returns an instance of userService
|
||||
func newRideService(svc *Service) *rideService {
|
||||
return &rideService{
|
||||
svc: svc,
|
||||
}
|
||||
}
|
||||
|
||||
// Save the ride for a expected user
|
||||
func (s *rideService) Save(ride entity.Ride) (entity.Ride, error) {
|
||||
ride, err := s.svc.db.Rides().Save(ride)
|
||||
if err != nil {
|
||||
return ride, err
|
||||
}
|
||||
|
||||
user, err := s.svc.db.Users().GetByID(ride.CreatedUser.ID)
|
||||
if err != nil {
|
||||
return ride, err
|
||||
}
|
||||
|
||||
return s.GetByUUID(ride.UUID, user)
|
||||
}
|
||||
|
||||
func (s *rideService) Update(hook entity.WebhookResponse) (entity.Ride, error) {
|
||||
user, err := s.svc.db.Users().GetByID(hook.Ride.CreatedUser.ID)
|
||||
if err != nil {
|
||||
return entity.Ride{}, err
|
||||
}
|
||||
|
||||
ride, err := s.svc.db.Rides().Update(hook, user)
|
||||
if err != nil {
|
||||
return ride, err
|
||||
}
|
||||
|
||||
return s.GetByUUID(ride.UUID, user)
|
||||
}
|
||||
|
||||
// GetAll return all rides
|
||||
func (s *rideService) GetAll(user entity.User) ([]entity.Ride, error) {
|
||||
return s.svc.db.Rides().GetAll(user)
|
||||
}
|
||||
|
||||
func (s *rideService) GetByID(id int64, user entity.User) (entity.Ride, error) {
|
||||
return s.svc.db.Rides().GetByID(id, user)
|
||||
}
|
||||
|
||||
// GetByUUID return a specific ride
|
||||
func (s *rideService) GetByUUID(uuid string, user entity.User) (entity.Ride, error) {
|
||||
return s.svc.db.Rides().GetByUUID(uuid, user)
|
||||
}
|
||||
|
||||
// GetByUUID return a specific ride
|
||||
func (s *rideService) GetByUUIDAndUserUUID(UUID string, userUUID string) (entity.Ride, error) {
|
||||
return s.svc.db.Rides().GetByUUIDAndUserUUID(UUID, userUUID)
|
||||
}
|
||||
|
||||
// GetByUUID return a specific ride
|
||||
func (s *rideService) GetByInternalID(internalID string) (entity.Ride, error) {
|
||||
return s.svc.db.Rides().GetByInternalID(internalID)
|
||||
}
|
||||
|
||||
// GetByUserID return a list of rides
|
||||
func (s *rideService) GetByUserID(userID int64, user entity.User) ([]entity.Ride, error) {
|
||||
return s.svc.db.Rides().GetByUserID(userID, user)
|
||||
}
|
||||
|
||||
func (s *rideService) GetByUserUUID(userUUID string, user entity.User) ([]entity.Ride, error) {
|
||||
return s.svc.db.Rides().GetByUserUUID(userUUID, user)
|
||||
}
|
||||
|
||||
func (s *rideService) UpdateStatus(rideUUID string, status string) error {
|
||||
return s.svc.db.Rides().UpdateStatus(rideUUID, status)
|
||||
}
|
||||
|
||||
func (s *rideService) GetLastRideByPhoneNumber(phoneNumber string) (entity.Ride, error) {
|
||||
return s.svc.db.Rides().GetLastRideByPhoneNumber(phoneNumber)
|
||||
}
|
||||
|
||||
func (s *rideService) GetLastRideByDriversNumber(phoneNumber string) (entity.Ride, error) {
|
||||
return s.svc.db.Rides().GetLastRideByDriversNumber(phoneNumber)
|
||||
}
|
||||
|
||||
func (s *rideService) GetByInternalPassengerID(internalPassengerID string) (entity.Ride, error) {
|
||||
return s.svc.db.Rides().GetByInternalPassengerID(internalPassengerID)
|
||||
}
|
||||
|
||||
func (s *rideService) GetByVisitUUID(visitUUID string, user entity.User) ([]entity.Ride, error) {
|
||||
return s.svc.db.Rides().GetByVisitUUID(visitUUID, user)
|
||||
}
|
||||
|
||||
func (s *rideService) GetByVisitUUIDAndTripType(visitUUID string, tripTypeKey string, user entity.User) (entity.Ride, error) {
|
||||
return s.svc.db.Rides().GetByVisitUUIDAndTripType(visitUUID, tripTypeKey, user)
|
||||
}
|
||||
Reference in New Issue
Block a user