2 +- 3 4 5
This commit is contained in:
parent
80a5b92d16
commit
2534bd9e7f
@ -12,7 +12,15 @@ func main() {
|
||||
|
||||
router := mux.NewRouter()
|
||||
|
||||
router.HandleFunc("/user/new", controllers.CreateService).Methods("POST")
|
||||
router.HandleFunc("/service/new", controllers.CreateService).Methods("POST")
|
||||
router.HandleFunc("/service/accept", controllers.AcceptVehicle).Methods("POST")
|
||||
router.HandleFunc("/service/all", controllers.GetServices).Methods("GET")
|
||||
|
||||
//Vehicle
|
||||
router.HandleFunc("/vehicle/new", controllers.CreateVehicle).Methods("POST")
|
||||
router.HandleFunc("/vehicle/all", controllers.GetvehiclesInService).Methods("GET")
|
||||
|
||||
|
||||
router.HandleFunc("/contacts/new", controllers.CreateContact).Methods("POST")
|
||||
router.HandleFunc("/me/contacts", controllers.GetContacts).Methods("GET")
|
||||
|
||||
|
7
internal/api/acceptVehicleRequest.go
Normal file
7
internal/api/acceptVehicleRequest.go
Normal file
@ -0,0 +1,7 @@
|
||||
package api
|
||||
|
||||
type AcceptVehicleRequest struct {
|
||||
ServiceId string `json:"service_id"`
|
||||
VehicleId string `json:"vehicle_id"`
|
||||
EmployeeId uint `json:"employee_id"`
|
||||
}
|
@ -8,12 +8,30 @@ import (
|
||||
)
|
||||
|
||||
var CreateService = func(w http.ResponseWriter, r *http.Request) {
|
||||
account := &models.Service{}
|
||||
err := json.NewDecoder(r.Body).Decode(account)
|
||||
service := &models.Service{}
|
||||
err := json.NewDecoder(r.Body).Decode(service)
|
||||
if err != nil {
|
||||
u.Respond(w, u.Message(false, "Invalid request!"))
|
||||
return
|
||||
}
|
||||
resp := account.CreateService()
|
||||
resp := service.CreateService()
|
||||
u.Respond(w, resp)
|
||||
}
|
||||
|
||||
var GetServices = func(w http.ResponseWriter, r *http.Request) {
|
||||
data := models.GetServices()
|
||||
resp := u.Message(true, "success")
|
||||
resp["data"] = data
|
||||
u.Respond(w, resp)
|
||||
}
|
||||
|
||||
var AcceptVehicle = func(w http.ResponseWriter, r *http.Request) {
|
||||
serviceVehicle := &models.ServiceVehicle{}
|
||||
err := json.NewDecoder(r.Body).Decode(serviceVehicle)
|
||||
if err != nil {
|
||||
u.Respond(w, u.Message(false, "Invalid request!"))
|
||||
return
|
||||
}
|
||||
resp := serviceVehicle.AcceptVehicle()
|
||||
u.Respond(w, resp)
|
||||
}
|
||||
|
34
internal/controllers/vehicleController.go
Normal file
34
internal/controllers/vehicleController.go
Normal file
@ -0,0 +1,34 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"gocommunity.ru/workshop/internal/models"
|
||||
u "gocommunity.ru/workshop/internal/utils"
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
var CreateVehicle = func(w http.ResponseWriter, r *http.Request) {
|
||||
vehicle := &models.Vehicle{}
|
||||
err := json.NewDecoder(r.Body).Decode(vehicle)
|
||||
if err != nil {
|
||||
u.Respond(w, u.Message(false, "Invalid request!"))
|
||||
return
|
||||
}
|
||||
resp := vehicle.CreateVehicle()
|
||||
u.Respond(w, resp)
|
||||
}
|
||||
|
||||
var GetvehiclesInService = func(w http.ResponseWriter, r *http.Request) {
|
||||
VehicleId := r.Context().Value("id").(uint)
|
||||
vehicle := &models.Vehicle{}
|
||||
|
||||
err := json.NewDecoder(r.Body).Decode(vehicle)
|
||||
if err != nil {
|
||||
u.Respond(w, u.Message(false, "Error!"))
|
||||
return
|
||||
}
|
||||
|
||||
vehicle.ID = VehicleId
|
||||
resp := vehicle.CreateVehicle()
|
||||
u.Respond(w, resp)
|
||||
}
|
@ -31,7 +31,7 @@ func init() {
|
||||
}
|
||||
|
||||
db = conn
|
||||
db.Debug().AutoMigrate(&Service{}, &Bonuse{}, &Client{}) //Миграция базы данных
|
||||
db.Debug().AutoMigrate(&Service{}, &Bonuse{}, &Client{}, &Contact{}, &Vehicle{}) //Миграция базы данных
|
||||
}
|
||||
|
||||
func GetDB() *gorm.DB {
|
||||
|
@ -1,13 +1,14 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
u "gocommunity.ru/workshop/internal/utils"
|
||||
"fmt"
|
||||
"github.com/jinzhu/gorm"
|
||||
u "gocommunity.ru/workshop/internal/utils"
|
||||
)
|
||||
|
||||
type Service struct {
|
||||
gorm.Model
|
||||
Price string `json:"email"`
|
||||
Price int32 `json:"price"`
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
}
|
||||
@ -21,3 +22,15 @@ func (service *Service) CreateService() map[string]interface{} {
|
||||
resp["service"] = service
|
||||
return resp
|
||||
}
|
||||
|
||||
func GetServices() []*Service {
|
||||
|
||||
servicesSlice := make([]*Service, 0)
|
||||
err := GetDB().Table("services").Find(&servicesSlice).Error
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return nil
|
||||
}
|
||||
|
||||
return servicesSlice
|
||||
}
|
43
internal/models/serviceVehicle.go
Normal file
43
internal/models/serviceVehicle.go
Normal file
@ -0,0 +1,43 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
u "gocommunity.ru/workshop/internal/utils"
|
||||
)
|
||||
|
||||
|
||||
type ServiceVehicle struct {
|
||||
ServiceId int32 `json:"service_id"`
|
||||
VehicleId int32 `json:"vehicle_id"`
|
||||
}
|
||||
|
||||
func (vehicle *ServiceVehicle) Validate() (map[string]interface{}, bool) {
|
||||
|
||||
if vehicle.ServiceId <= 0 {
|
||||
return u.Message(false, "ServiceId can't be < 0!"), false
|
||||
}
|
||||
|
||||
if vehicle.VehicleId <= 0 {
|
||||
return u.Message(false, "VehicleId can't be < 0!"), false
|
||||
}
|
||||
|
||||
return u.Message(true, "success"), true
|
||||
}
|
||||
|
||||
func (serviceVehicle *ServiceVehicle) AcceptVehicle() map[string]interface{} {
|
||||
|
||||
if response, ok := serviceVehicle.Validate(); !ok {
|
||||
return response
|
||||
}
|
||||
|
||||
err := GetDB().Table("service_vehicle").Create(serviceVehicle).Error
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return nil
|
||||
}
|
||||
|
||||
resp := u.Message(true, "success")
|
||||
resp["serviceVehicle"] = serviceVehicle
|
||||
return resp
|
||||
}
|
@ -11,6 +11,7 @@ type Vehicle struct {
|
||||
ClientId int `json:"client_id"`
|
||||
Brand string `json:"brand"`
|
||||
Color string `json:"color"`
|
||||
Services []Service `gorm:"many2many:service_vehicle;foreignkey:vehicle_id;references:Id"`
|
||||
}
|
||||
|
||||
func (vehicle *Vehicle) ValidateVehicle() (map[string]interface{}, bool) {
|
||||
@ -64,3 +65,15 @@ func Getvehicles(user uint) []*Vehicle {
|
||||
|
||||
return vehiclesSlice
|
||||
}
|
||||
|
||||
func GetvehiclesInService() []*Vehicle {
|
||||
|
||||
vehiclesSlice := make([]*Vehicle, 0)
|
||||
err := GetDB().Table("vehicles").Joins("join service_vehicle sv on ").Where("user_id = ?").Find(&vehiclesSlice).Error
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return nil
|
||||
}
|
||||
|
||||
return vehiclesSlice
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user