132 lines
3.9 KiB
PHP
132 lines
3.9 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 Client Installation Feedback
|
|
*/
|
|
class Cif extends Modules\ApiControllerModule {
|
|
|
|
public function init() {
|
|
|
|
}
|
|
|
|
/*
|
|
* GET /preorder/:code/clientInstallationFinished
|
|
*/
|
|
public function providerSetCif($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 flag 200
|
|
$preorder->setStatusFlag(200, 1);
|
|
|
|
return \mfResponse::Ok(["message" => "Status successfully updated."]);
|
|
|
|
}
|
|
|
|
/*
|
|
* GET /preorder/customerInstallationFeedback
|
|
*/
|
|
public function getCifData() {
|
|
if($this->me->is("Preorderreadonly")) return \mfResponse::Forbidden();
|
|
|
|
if(!array_key_exists("ciftoken", $this->get) || !$this->get['ciftoken']) {
|
|
return \mfResponse::BadRequest(["message" => "ciftoken missing"]);
|
|
}
|
|
|
|
$preorder = \PreorderModel::getFirst(["ciftoken" => $this->get["ciftoken"]]);
|
|
if(!$preorder) {
|
|
return \mfResponse::NotFound(["message" => "Invalid ciftoken"]);
|
|
}
|
|
if(!$preorder->adb_hausnummer->netzgebiet_id) {
|
|
return \mfResponse::NotFound(["message" => "Invalid ciftoken"]);
|
|
}
|
|
|
|
|
|
$network = \NetworkModel::getFirst(["adb_netzgebiet_id" => $preorder->adb_hausnummer->netzgebiet->id]);
|
|
if(!$network) {
|
|
return \mfResponse::NotFound(["message" => "Invalid ciftoken"]);
|
|
}
|
|
|
|
if($network->owner_id != $this->me->address_id) {
|
|
return \mfResponse::NotFound(["message" => "Invalid ciftoken"]);
|
|
}
|
|
|
|
$return = $preorder->getCifdataApiArray();
|
|
|
|
return \mfResponse::Ok($return);
|
|
}
|
|
|
|
/*
|
|
* POST /preorder/customerInstallationFeedback
|
|
*/
|
|
public function userSetCif() {
|
|
if($this->me->is("Preorderreadonly")) return \mfResponse::Forbidden();
|
|
//return \mfResponse::InternalServerError();
|
|
|
|
$ciftoken = false;
|
|
|
|
if(array_key_exists("ciftoken", $this->post) && $this->post['ciftoken']) {
|
|
$ciftoken = $this->post['ciftoken'];
|
|
}
|
|
|
|
if(array_key_exists("ciftoken", $this->get) && $this->get['ciftoken']) {
|
|
$ciftoken = $this->get['ciftoken'];
|
|
}
|
|
|
|
if(!$ciftoken) {
|
|
return \mfResponse::BadRequest(["message" => "ciftoken missing"]);
|
|
}
|
|
|
|
$preorder = \PreorderModel::getFirst(["ciftoken" => $this->get["ciftoken"]]);
|
|
if(!$preorder) {
|
|
return \mfResponse::NotFound(["message" => "Invalid ciftoken"]);
|
|
}
|
|
|
|
if(!$preorder->adb_hausnummer->netzgebiet_id) {
|
|
return \mfResponse::NotFound(["message" => "Invalid ciftoken"]);
|
|
}
|
|
$network = \NetworkModel::getFirst(["adb_netzgebiet_id" => $preorder->adb_hausnummer->netzgebiet->id]);
|
|
if(!$network) {
|
|
return \mfResponse::NotFound(["message" => "Invalid ciftoken"]);
|
|
}
|
|
if($network->owner_id != $this->me->address_id) {
|
|
return \mfResponse::NotFound(["message" => "Invalid ciftoken"]);
|
|
}
|
|
|
|
// set status flag 200
|
|
$preorder->setStatusFlag(200, 1);
|
|
|
|
return \mfResponse::Ok(["message" => "Status successfully updated."]);
|
|
|
|
}
|
|
|
|
|
|
|
|
} |