Add depot, attendant, jetfire, optimus, ota services with kustomize overlays
This commit is contained in:
55
services/attendant/handlers/update_approve.go
Normal file
55
services/attendant/handlers/update_approve.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"github.com/fiskerinc/cloud-services/services/attendant/services"
|
||||
|
||||
"github.com/fiskerinc/cloud-services/pkg/common"
|
||||
"github.com/fiskerinc/cloud-services/pkg/logger"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
// UpdateData extracts update ID from byte slice
|
||||
type UpdateData struct {
|
||||
ID int `json:"id"`
|
||||
}
|
||||
|
||||
// ApproveUpdate updates DB update field and
|
||||
//
|
||||
// sends redis message to vehicle to initialize download
|
||||
func ApproveUpdate(db *services.DB, id string, data []byte) error {
|
||||
logger.Debug().Msgf("ApproveUpdate %s", id)
|
||||
|
||||
client := services.RedisClientPool().GetFromPool()
|
||||
defer client.Close()
|
||||
|
||||
// TODO: NEEDS VALIDATION THAT INCOMING ID CAN APPROVE
|
||||
// CAN COME FROM MOBILE OR HMI - NEEDS TO HANDLE BOTH CASES
|
||||
|
||||
var u UpdateData
|
||||
err := json.Unmarshal(data, &u)
|
||||
if err != nil {
|
||||
return errors.WithStack(err)
|
||||
}
|
||||
|
||||
update, err := db.ModifyUpdateStatus(u.ID, "approved")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
logger.Debug().Msgf("Sending redis queue- %s, key- %s, hander- %s, data- %v", "attendant", update.VIN, "update_download", u)
|
||||
|
||||
err = client.SafeQueueMessage(
|
||||
common.TRex.Key(update.VIN),
|
||||
common.Message{
|
||||
Handler: "update_download",
|
||||
Data: u,
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user