From 588a8d61b618ed346aeee0f1ccdfb6b6ef748b98 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Wed, 18 Dec 2024 16:30:30 +0100 Subject: [PATCH] Added statusupdate endpoint to Preorder Selfservice Api --- .../v1/PreorderselfserviceApicontroller.php | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/application/Api/v1/PreorderselfserviceApicontroller.php b/application/Api/v1/PreorderselfserviceApicontroller.php index 681dbae68..38a2cb261 100644 --- a/application/Api/v1/PreorderselfserviceApicontroller.php +++ b/application/Api/v1/PreorderselfserviceApicontroller.php @@ -4,6 +4,7 @@ class PreorderselfserviceApicontroller extends mfBaseApicontroller { public function init() { $this->addRoute("/preorderselfservice/preorder", "getPreorder", "GET"); + $this->addRoute("/preorderselfservice/:oaid/:status", "setSelfserviceStatus", "POST"); } protected function authenticated() { @@ -70,4 +71,45 @@ class PreorderselfserviceApicontroller extends mfBaseApicontroller { return mfResponse::Ok($result); } + /* + * /preorderselfservice/:oaid/:status + */ + protected function setSelfserviceStatus($params = []) { + if(!$params["oaid"] || !$params["status"]) { + return mfResponse::BadRequest(["message" => "mandatory parameters missing"]); + } + + $oaid = $params["oaid"]; + $status_code = $params["status"]; + + $preorder = PreorderModel::getFirst(["oaid" => $oaid]); + if(!$preorder) { + return mfResponse::NotFound(["message" => "OAID not found"]); + } + + $valid_stati = [200, 242]; + if(!in_array($status_code, $valid_stati)) { + return mfResponse::BadRequest(["message" => "Invalid Status code"]); + } + + //var_dump($preorder->statusflags);exit; + + $sflag = PreorderStatusflagModel::getFirst(["code" => $status_code]); + $sflag_val = PreorderStatusflagValueModel::getFirst(["preorder_id" => $preorder->id, "flag_id" => $sflag->id]); + if(!$sflag_val) { + $sflag_val = PreorderStatusflagValueModel::create([ + "preorder_id" => $preorder->id, + "flag_id" => $sflag->id + ]); + } + if($sflag_val->value != 1) { + $sflag_val->value = 1; + if(!$sflag_val->save()) { + return mfResponse::InternalServerError(); + } + } + + return mfResponse::Ok(["message" => "Status saved successfully"]); + } + } \ No newline at end of file