magento2-docker/app/code/IpSupply/SyncOrder/Api/Repository.php

87 lines
2.0 KiB
PHP
Executable File

<?php
namespace IpSupply\SyncOrder\Api;
use IpSupply\SyncOrder\Api\RepositoryInterface;
/**
* @api
*/
class Repository implements RepositoryInterface
{
function __construct()
{
$this->authorization();
}
private function authorization()
{
$headers = apache_request_headers();
$apiKey = \IpSupply\SyncOrder\Helper::API_KEY;
foreach ($headers as $key => $value) {
$key = strtolower($key);
if ('api_key' === $key && $value === $apiKey) {
return true;
}
}
header('HTTP/1.1 401 Unauthorized');
header('Accept: application/json');
header('Content-Type: application/json');
die(json_encode(['message' => 'unauthorized']));
}
private function _responseOk(array $data)
{
header('HTTP/1.1 200 Ok');
header('Accept: application/json');
header('Content-Type: application/json');
die(json_encode($data));
}
private function _responseFail(array $data)
{
header('HTTP/1.1 400 Bad request');
header('Accept: application/json');
header('Content-Type: application/json');
die(json_encode($data));
}
private function _responseMethodFail()
{
header('HTTP/1.1 400 bad request');
header('Accept: application/json');
header('Content-Type: application/json');
die(json_encode([
'status' => false,
'message' => 'Param ?method=... not exist!'
]));
}
public function getData()
{
return $this->_responseOk([
'status' => true,
'data' => []
]);
// return $this->_responseMethodFail();
}
public function postData()
{
parse_str(
string: file_get_contents('php://input'),
result: $payload
);
return $this->_responseOk([
'status' => true,
'data' => [], // TODO
'payload' => $payload
]);
// return $this->_responseMethodFail();
}
}