From 1aeb6d50efa5c1cf952e53f544a8a40e6edc7669 Mon Sep 17 00:00:00 2001 From: soukainna Date: Fri, 12 May 2023 12:59:16 +0200 Subject: [PATCH 1/4] add logic fuction to update vehicles --- handlers/application/vehicles-management.go | 142 ++++++++++++-------- 1 file changed, 83 insertions(+), 59 deletions(-) diff --git a/handlers/application/vehicles-management.go b/handlers/application/vehicles-management.go index 29201ad..2e61335 100644 --- a/handlers/application/vehicles-management.go +++ b/handlers/application/vehicles-management.go @@ -52,14 +52,6 @@ func (h *ApplicationHandler) VehiclesManagementOverview(w http.ResponseWriter, r } } - // vehiicles := []fleetsstorage.Vehicle{} - // for i, vehiicle := range resp.Vehicles { - // if len(resp.Vehicles[i].Bookings) == 0 { - // v := vehiicle.ToStorageType() - // vehiicles = append(vehiicles, v) - // } - // } - //fmt.Println(vehiicles) sort.Sort(sorting.VehiclesByLicencePlate(vehicles)) sort.Sort(sorting.BookingsByStartdate(bookings)) h.Renderer.VehiclesManagementOverview(w, r, vehicles, vehicles_map, bookings) @@ -190,36 +182,10 @@ func (h *ApplicationHandler) VehiclesFleetDisplay(w http.ResponseWriter, r *http w.WriteHeader(http.StatusInternalServerError) return } - // if len(resp.Vehicle.ToStorageType().Bookings) == 0 { - // fmt.Println("lol") - // } - // fmt.Println(resp.Vehicle.ToStorageType().Bookings) + h.Renderer.VehiclesFleetDisplay(w, r, resp.Vehicle.ToStorageType()) } -func (h *ApplicationHandler) VehiclesFleetUpdate(w http.ResponseWriter, r *http.Request) { - vars := mux.Vars(r) - vehicleid := vars["vehicleid"] - - if r.Method == "POST" { - w.WriteHeader(http.StatusNotFound) - return - } - - request := &fleets.GetVehicleRequest{ - Vehicleid: vehicleid, - } - - resp, err := h.services.GRPC.Fleets.GetVehicle(context.TODO(), request) - if err != nil { - fmt.Println(err) - w.WriteHeader(http.StatusInternalServerError) - return - } - - h.Renderer.VehiclesFleetUpdate(w, r, resp.Vehicle.ToStorageType()) -} - func filterVehicle(r *http.Request, v *fleets.Vehicle) bool { g := r.Context().Value(identification.GroupKey) if g == nil { @@ -467,27 +433,85 @@ func (h ApplicationHandler) VehiclesFleetMakeUnavailable(w http.ResponseWriter, http.Redirect(w, r, fmt.Sprintf("/app/vehicles-management/fleet/%s", vehicleid), http.StatusFound) } -// func (h *ApplicationHandler) UnbookingVehicles(w http.ResponseWriter, r *http.Request) { -// request := &fleets.GetVehiclesRequest{ -// Namespaces: []string{"parcoursmob"}, -// } -// resp, err := h.services.GRPC.Fleets.GetVehicles(context.TODO(), request) -// if err != nil { -// fmt.Println(err) -// w.WriteHeader(http.StatusInternalServerError) -// } -// vehicles := []fleetsstorage.Vehicle{} -// fmt.Println(resp.Vehicles[0].Bookings) -// for i, vehicle := range resp.Vehicles { -// if len(resp.Vehicles[i].Bookings) == 0 { -// v := vehicle.ToStorageType() -// vehicles = append(vehicles, v) -// } -// } -// // if len(resp.Vehicle.ToStorageType().Bookings) == 0 { -// // h.Renderer.UnbookingVehicles(w, r, resp.Vehicle.ToStorageType()) -// // } -// // fmt.Println(resp.Vehicle.ToStorageType().Bookings) -// fmt.Println(vehicles) -// h.Renderer.UnbookingVehicles(w, r, vehicles) -// } +////////////////////////UpdateVehicle/////////////////////// + +func (h *ApplicationHandler) VehiclesFleetUpdate(w http.ResponseWriter, r *http.Request) { + vars := mux.Vars(r) + vehicleID := vars["vehicleid"] + request := &fleets.GetVehicleRequest{ + Vehicleid: vehicleID, + } + + resp, err := h.services.GRPC.Fleets.GetVehicle(context.TODO(), request) + if err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusInternalServerError) + return + } + namespaceV := resp.Vehicle.Namespace + //typeV := resp.Vehicle.Type + administratorsV := resp.Vehicle.Administrators + + if r.Method == "POST" { + fmt.Print(r.FormValue("vehicle_type")) + if err := r.ParseForm(); err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusBadRequest) + return + } + dataMap := map[string]any{} + if v := r.FormValue("name"); v != "" { + dataMap["name"] = v + } + if v := r.FormValue("address"); v != "" { + var address map[string]any + err := json.Unmarshal([]byte(v), &address) + if err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusInternalServerError) + return + } + dataMap["address"] = address + } + if v := r.FormValue("informations"); v != "" { + dataMap["informations"] = v + } + if v := r.FormValue("licence_plate"); v != "" { + dataMap["licence_plate"] = v + } + if v := r.FormValue("automatic"); v != "" { + fmt.Println(v) + dataMap["automatic"] = (v == "on") + } + + data, err := structpb.NewValue(dataMap) + if err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusInternalServerError) + return + } + + request := &fleets.UpdateVehicleRequest{ + Vehicle: &fleets.Vehicle{ + Id: vehicleID, + Namespace: namespaceV, + Type: r.FormValue("type"), + Administrators: administratorsV, + Data: data.GetStructValue(), + }, + } + + resp, err := h.services.GRPC.Fleets.UpdateVehicle(context.TODO(), request) + + if err != nil { + fmt.Println(err) + w.WriteHeader(http.StatusInternalServerError) + return + } + + http.Redirect(w, r, fmt.Sprintf("/app/vehicles-management/fleet/%s", resp.Vehicle.Id), http.StatusFound) + return + } + vehicles_types := h.config.GetStringSlice("modules.fleets.vehicle_types") + h.Renderer.VehiclesFleetUpdate(w, r, resp.Vehicle.ToStorageType(), vehicles_types) +} From d5bc764ef3d3b682a272665ed1f5aaa088f583c2 Mon Sep 17 00:00:00 2001 From: soukainna Date: Fri, 12 May 2023 13:00:19 +0200 Subject: [PATCH 2/4] fix err --- go.sum | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/go.sum b/go.sum index ad66265..61996dc 100644 --- a/go.sum +++ b/go.sum @@ -40,6 +40,8 @@ git.coopgo.io/coopgo-platform/agenda v0.0.0-20221017030035-4a26fc791c5b h1:7kLW1 git.coopgo.io/coopgo-platform/agenda v0.0.0-20221017030035-4a26fc791c5b/go.mod h1:wqPvfYmzGF2cfXbs8XE1P2j5UYqZwp/La0llkl7dUkc= git.coopgo.io/coopgo-platform/agenda v0.0.0-20221205162112-5feb1b720ef9 h1:aP/OxSxOUM7D5PcIs+VSU90Pyy+SSUOOM54FZvPmZ8w= git.coopgo.io/coopgo-platform/agenda v0.0.0-20221205162112-5feb1b720ef9/go.mod h1:wqPvfYmzGF2cfXbs8XE1P2j5UYqZwp/La0llkl7dUkc= +git.coopgo.io/coopgo-platform/agenda v0.0.0-20230310121901-ef3add576f86 h1:pSNHhPU8NB35G14QsSyw/XwsTWZo0qGB0U0X0gzqR1s= +git.coopgo.io/coopgo-platform/agenda v0.0.0-20230310121901-ef3add576f86/go.mod h1:7jVyZSz//VW5+jlLeuwc+JJawNUhJZ7Vima+TdVwKfs= git.coopgo.io/coopgo-platform/emailing v0.0.0-20221017030337-c71888d90c15 h1:+ZI4nGE6mqZ6pc7N/BizheEPRXn6Z84Sj7ikwfP2ZcU= git.coopgo.io/coopgo-platform/emailing v0.0.0-20221017030337-c71888d90c15/go.mod h1:rmbqiHVkONcECOoPlsXlxZnD315Tiz2oRnn1M7646Kg= git.coopgo.io/coopgo-platform/fleets v0.0.0-20221101232521-da16c90fc3ba h1:clfkgihzYa3xWKSY/Sn6VUSydOReh7cpuihvYNkWjNk= @@ -48,10 +50,14 @@ git.coopgo.io/coopgo-platform/fleets v0.0.0-20221205162030-cecdcb20e1d5 h1:HL/M6 git.coopgo.io/coopgo-platform/fleets v0.0.0-20221205162030-cecdcb20e1d5/go.mod h1:s9OIFCNcjBAbBzRNHwoCTYV6kAntPG9CpT3GVweGdTY= git.coopgo.io/coopgo-platform/fleets v0.0.0-20221205181518-91991789db9b h1:wvK1V8fFmHgnzVyleEF6Jq0Jcp5cVpPfW7WjMYiTTrE= git.coopgo.io/coopgo-platform/fleets v0.0.0-20221205181518-91991789db9b/go.mod h1:s9OIFCNcjBAbBzRNHwoCTYV6kAntPG9CpT3GVweGdTY= +git.coopgo.io/coopgo-platform/fleets v0.0.0-20230310144446-feb935f8bf4e h1:eHahRTKlC8aBWYCd6LbXNcX8HoQhuZj31OFWrw0EL0U= +git.coopgo.io/coopgo-platform/fleets v0.0.0-20230310144446-feb935f8bf4e/go.mod h1:s9OIFCNcjBAbBzRNHwoCTYV6kAntPG9CpT3GVweGdTY= git.coopgo.io/coopgo-platform/groups-management v0.0.0-20221017025751-671dc9a2c544 h1:rMLP77uIEequVXXZ0X9G1iK2k+xvW/+58ggwxxI6gqY= git.coopgo.io/coopgo-platform/groups-management v0.0.0-20221017025751-671dc9a2c544/go.mod h1:lozSy6qlIIYhvKKXscZzz28HAtS0qBDUTv5nofLRmYA= git.coopgo.io/coopgo-platform/groups-management v0.0.0-20221205161801-9705c8d898f0 h1:CnLKO1kzoGtaqPhDqfOX3WPRFRcJVJZdGzPdBE4X//w= git.coopgo.io/coopgo-platform/groups-management v0.0.0-20221205161801-9705c8d898f0/go.mod h1:lozSy6qlIIYhvKKXscZzz28HAtS0qBDUTv5nofLRmYA= +git.coopgo.io/coopgo-platform/groups-management v0.0.0-20230310123255-5ef94ee0746c h1:bY7PyrAgYY02f5IpDyf1WVfRqvWzivu31K6aEAYbWCw= +git.coopgo.io/coopgo-platform/groups-management v0.0.0-20230310123255-5ef94ee0746c/go.mod h1:lozSy6qlIIYhvKKXscZzz28HAtS0qBDUTv5nofLRmYA= git.coopgo.io/coopgo-platform/mobility-accounts v0.0.0-20220906130339-b9a32e41bffe h1:4OKwfKybR0VsIw2dSM9RtqGWveWPt+JjtiiMIBrg/w0= git.coopgo.io/coopgo-platform/mobility-accounts v0.0.0-20220906130339-b9a32e41bffe/go.mod h1:1typNYtO+PQT6KG77vs/PUv0fO60/nbeSGZL2tt1LLg= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= From 93cab33fb9e7ddee8ac69aabf922212bff376d79 Mon Sep 17 00:00:00 2001 From: soukainna Date: Fri, 19 May 2023 10:19:06 +0200 Subject: [PATCH 3/4] update vehicle --- renderer/vehicle-management.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/renderer/vehicle-management.go b/renderer/vehicle-management.go index 35558dd..217d53c 100644 --- a/renderer/vehicle-management.go +++ b/renderer/vehicle-management.go @@ -53,11 +53,12 @@ func (renderer *Renderer) VehiclesFleetDisplay(w http.ResponseWriter, r *http.Re renderer.Render("fleet display vehicle", w, r, files, state) } -func (renderer *Renderer) VehiclesFleetUpdate(w http.ResponseWriter, r *http.Request, vehicle any) { +func (renderer *Renderer) VehiclesFleetUpdate(w http.ResponseWriter, r *http.Request, vehicle any, vehicle_types []string) { files := renderer.ThemeConfig.GetStringSlice("views.vehicles_management.fleet_update.files") state := NewState(r, renderer.ThemeConfig, vehiclesmanagementMenu) state.ViewState = map[string]any{ - "vehicle": vehicle, + "vehicle": vehicle, + "vehicle_types": vehicle_types, } renderer.Render("fleet display vehicle", w, r, files, state) From 96823f328958f3e549b91f799611bdc0c36400e0 Mon Sep 17 00:00:00 2001 From: soukainna Date: Fri, 19 May 2023 10:19:30 +0200 Subject: [PATCH 4/4] update vehicle --- go.mod | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 357eb5d..6f4ef4a 100644 --- a/go.mod +++ b/go.mod @@ -4,11 +4,11 @@ go 1.18 // replace git.coopgo.io/coopgo-platform/mobility-accounts => ../../coopgo-platform/mobility-accounts/ -replace git.coopgo.io/coopgo-platform/groups-management => ../../coopgo-platform/groups-management/ +// replace git.coopgo.io/coopgo-platform/groups-management => ../../coopgo-platform/groups-management/ // replace git.coopgo.io/coopgo-platform/fleets => ../../coopgo-platform/fleets/ -replace git.coopgo.io/coopgo-platform/agenda => ../../coopgo-platform/agenda/ +// replace git.coopgo.io/coopgo-platform/agenda => ../../coopgo-platform/agenda/ // replace git.coopgo.io/coopgo-platform/emailing => ../../coopgo-platform/emailing/ @@ -30,10 +30,10 @@ require ( ) require ( - git.coopgo.io/coopgo-platform/agenda v0.0.0-20221205162112-5feb1b720ef9 + git.coopgo.io/coopgo-platform/agenda v0.0.0-20230310121901-ef3add576f86 git.coopgo.io/coopgo-platform/emailing v0.0.0-20221017030337-c71888d90c15 - git.coopgo.io/coopgo-platform/fleets v0.0.0-20221205181518-91991789db9b - git.coopgo.io/coopgo-platform/groups-management v0.0.0-20221205161801-9705c8d898f0 + git.coopgo.io/coopgo-platform/fleets v0.0.0-20230310144446-feb935f8bf4e + git.coopgo.io/coopgo-platform/groups-management v0.0.0-20230310123255-5ef94ee0746c git.coopgo.io/coopgo-platform/mobility-accounts v0.0.0-20220906130339-b9a32e41bffe github.com/gorilla/securecookie v1.1.1 github.com/minio/minio-go/v7 v7.0.43