Files
thetool/application/Api/v1/Modules/Preorder/Activation.php
2024-10-10 20:24:09 +02:00

63 lines
1.6 KiB
PHP

<?php
namespace application\Api\v1\Modules\Preorder;
use application\Api\v1\Modules;
require_once(APPDIR."/Api/v1/Modules/ApiControllerModule.php");
/*
* API Endpoints for Preorder Activation
*/
class Activation extends Modules\ApiControllerModule {
public function init() {
}
/*
* POST /preorder/:code/serviceActivated
*/
public function setServiceActive($code) {
if($this->me->is("Preorderreadonly")) return \mfResponse::Forbidden();
$code = trim($code);
if(!$code) {
return \mfResponse::NotFound(["message" => "Preorder not found"]);
}
$preorder = \PreorderModel::getFirst(['ucode' => strtoupper($code), 'partner_id' => $this->me->address_id]);
if(!$preorder) {
// try oaid
$preorder = \PreorderModel::getFirst(['oaid' => strtolower($code), 'partner_id' => $this->me->address_id], "`create` DESC");
}
if(!$preorder) {
// try as extref
$preorder = \PreorderModel::getFirst(['extref' => $code, 'partner_id' => $this->me->address_id]);
}
if(!$preorder) {
return \mfResponse::NotFound(["message" => "Preorder not found"]);
}
if($preorder->partner_id != $this->me->address_id) {
return \mfResponse::NotFound(["message" => "Preorder not found"]);
}
// set status to 500
if($preorder->status->code < 500) {
$new_status = \PreorderstatusModel::getFirst(["code" => 500]);
if(!$new_status) {
return \mfResponse::InternalServerError();
}
$preorder->status_id = $new_status->id;
$preorder->save();
}
return \mfResponse::Ok(["message" => "Status successfully updated."]);
}
}