Initial cloud-services repo - gateway service + pkg modules

This commit is contained in:
Chris Rai
2026-01-30 23:14:52 -05:00
commit fbb820d7b3
1037 changed files with 171318 additions and 0 deletions

100
pkg/foa/foa.go Normal file
View File

@@ -0,0 +1,100 @@
package foa
import "time"
type FoaOtaUpdateStatusRequest struct {
OtaID string `json:"ota_id"`
Status string `json:"status"`
NotesToOwner string `json:"notes_to_owner"`
InternalNotes string `json:"internal_notes"`
SuppressEmail bool `json:"suppress_email"`
Vin string `json:"vin"`
AddlData FoaAddlData `json:"addl_data"`
}
type FoaAddlData struct {
FailureReason string `json:"failure_reason,omitempty"`
OwnerAdvice string `json:"owner_advice,omitempty"`
DateScheduled string `json:"date_scheduled,omitempty"`
CancelReason string `json:"cancel_reason,omitempty"`
}
func BuildOtaUpdateStatusInProgressRequest(vin string, updateManifestID int64) FoaOtaUpdateStatusRequest {
var req = FoaOtaUpdateStatusRequest{
Vin: vin,
Status: "IN_PROGRESS",
}
switch updateManifestID {
case 816:
req.NotesToOwner = "Your Ocean is being updated to version 2.2 (1/3)"
case 817, 818, 819:
req.NotesToOwner = "Your Ocean is being updated to version 2.2 (2/3)"
case 820:
req.NotesToOwner = "Your Ocean is being updated to version 2.2 (3/3)"
}
return req
}
func BuildOtaUpdateStatusSuccessRequest(vin string, updateManifestID int64) FoaOtaUpdateStatusRequest {
var req = FoaOtaUpdateStatusRequest{
Vin: vin,
Status: "COMPLETE_SUCCESSFUL",
}
switch updateManifestID {
case 816:
req.NotesToOwner = "Your Ocean has successfully been updated to version 2.2 (1/3)"
case 817, 818, 819:
req.NotesToOwner = "Your Ocean has successfully been updated to version 2.2 (2/3)"
case 820:
req.NotesToOwner = "Your Ocean has successfully been updated to version 2.2 (3/3)"
}
return req
}
func BuildOtaUpdateStatusFailedRequest(vin string, updateManifestID int64, info string) FoaOtaUpdateStatusRequest {
var req = FoaOtaUpdateStatusRequest{
Vin: vin,
Status: "COMPLETE_FAILED",
AddlData: FoaAddlData{
FailureReason: "Update failed because of an error",
OwnerAdvice: info,
},
}
switch updateManifestID {
case 816:
req.NotesToOwner = "There was an error updating your Ocean to version 2.2 (1/3)"
case 817, 818, 819:
req.NotesToOwner = "There was an error updating your Ocean to version 2.2 (2/3)"
case 820:
req.NotesToOwner = "There was an error updating your Ocean to version 2.2 (3/3)"
}
return req
}
func BuildOtaUpdateStatusCanceledRequest(vin string, updateManifestID int64, info string) FoaOtaUpdateStatusRequest {
var req = FoaOtaUpdateStatusRequest{
Vin: vin,
Status: "CANCELLED",
AddlData: FoaAddlData{
CancelReason: info,
DateScheduled: time.Now().Local().String(),
},
}
switch updateManifestID {
case 816:
req.NotesToOwner = "Update 2.2 (1/3) to your Ocean was canceled"
case 817, 818, 819:
req.NotesToOwner = "Update 2.2 (2/3) to your Ocean was canceled"
case 820:
req.NotesToOwner = "Update 2.2 (3/3) to your Ocean was canceled"
}
return req
}