changed from content to panel
Signed-off-by: tracer <tracer@24unix.net>
This commit is contained in:
parent
1ad945fbf2
commit
8c7755e096
|
@ -22,17 +22,17 @@ use OpenApi\Attributes as OAT;
|
|||
*/
|
||||
#[OAT\Info(version: '0.0.1', title: 'bindAPI')]
|
||||
#[OAT\Server(
|
||||
url: "{schema}://{hostname}/api",
|
||||
url : "{schema}://{hostname}/api",
|
||||
description: "The bindAPI URL.",
|
||||
variables: [
|
||||
variables : [
|
||||
new OAT\ServerVariable(
|
||||
serverVariable: "schema",
|
||||
default: "https",
|
||||
enum: ["https", "http"]
|
||||
default : "https",
|
||||
enum : ["https", "http"]
|
||||
),
|
||||
new OAT\ServerVariable(
|
||||
serverVariable: "hostname",
|
||||
default: "ns2.24unix.net",
|
||||
default : "ns2.24unix.net",
|
||||
)
|
||||
]
|
||||
)]
|
||||
|
@ -41,10 +41,10 @@ use OpenApi\Attributes as OAT;
|
|||
)]
|
||||
#[OAT\SecurityScheme(
|
||||
securityScheme: "Authorization",
|
||||
type: "apiKey",
|
||||
description: "description",
|
||||
name: "X-API-Key",
|
||||
in: "header"
|
||||
type : "apiKey",
|
||||
description : "description",
|
||||
name : "X-API-Key",
|
||||
in : "header"
|
||||
)]
|
||||
class RequestController
|
||||
{
|
||||
|
@ -101,29 +101,29 @@ class RequestController
|
|||
* @return void
|
||||
*/
|
||||
#[OAT\Get(
|
||||
path: '/domains',
|
||||
path : '/domains',
|
||||
operationId: 'getAllDomains',
|
||||
description: 'Returns a list of all domains on this server.',
|
||||
summary: 'Listing all domains.',
|
||||
summary : 'Listing all domains.',
|
||||
// security: [
|
||||
// 'Authorization' => [
|
||||
//
|
||||
// "read:api"
|
||||
// ]
|
||||
// ],
|
||||
servers: [],
|
||||
tags: ['Domains'],
|
||||
responses: [
|
||||
servers : [],
|
||||
tags : ['Domains'],
|
||||
responses : [
|
||||
new OAT\Response(
|
||||
response: 200,
|
||||
response : 200,
|
||||
description: 'OK'
|
||||
),
|
||||
new OAT\Response(
|
||||
response: 401,
|
||||
response : 401,
|
||||
description: 'API key is missing or invalid.'
|
||||
),
|
||||
new OAT\Response(
|
||||
response: 404,
|
||||
response : 404,
|
||||
description: 'Domain not found.'
|
||||
)]
|
||||
)]
|
||||
|
@ -186,27 +186,27 @@ class RequestController
|
|||
*/
|
||||
|
||||
#[OAT\Get(
|
||||
path: '/domains/{name}',
|
||||
path : '/domains/{name}',
|
||||
operationId: 'getSingleDomain',
|
||||
description: 'Returns information of a single domain specified by its domain name.',
|
||||
summary: 'Returns a single domain.',
|
||||
security: [
|
||||
summary : 'Returns a single domain.',
|
||||
security : [
|
||||
],
|
||||
tags: ['Domains'],
|
||||
parameters: [
|
||||
tags : ['Domains'],
|
||||
parameters : [
|
||||
new OAT\Parameter(name: 'name', in: 'path', required: true, schema: new OAT\Schema(type: 'string')),
|
||||
],
|
||||
responses: [
|
||||
responses : [
|
||||
new OAT\Response(
|
||||
response: 200,
|
||||
response : 200,
|
||||
description: 'OK'
|
||||
),
|
||||
new OAT\Response(
|
||||
response: 401,
|
||||
response : 401,
|
||||
description: 'API key is missing or invalid.'
|
||||
),
|
||||
new OAT\Response(
|
||||
response: 404,
|
||||
response : 404,
|
||||
description: 'Domain not found.'
|
||||
)]
|
||||
|
||||
|
@ -314,9 +314,9 @@ class RequestController
|
|||
if ($this->uri[3] == 'name') {
|
||||
if ($result = $this->domainRepository->findByName(name: $this->uri[4])) {
|
||||
$domain = [
|
||||
'id' => $result->getId(),
|
||||
'name' => $result->getName(),
|
||||
'content' => json_decode(json: $result->getContent())
|
||||
'id' => $result->getId(),
|
||||
'name' => $result->getName(),
|
||||
'panel' => $result->getPanel()
|
||||
];
|
||||
$this->result = $domain;
|
||||
} else {
|
||||
|
@ -332,9 +332,9 @@ class RequestController
|
|||
if ($id > 0) {
|
||||
if ($result = $this->domainRepository->findById(id: $id)) {
|
||||
$domain = [
|
||||
'id' => $result->getId(),
|
||||
'name' => $result->getName(),
|
||||
'content' => json_decode(json: $result->getContent())
|
||||
'id' => $result->getId(),
|
||||
'name' => $result->getName(),
|
||||
'panel' => $result->getPanel()
|
||||
];
|
||||
$this->result = $domain;
|
||||
} else {
|
||||
|
@ -342,7 +342,6 @@ class RequestController
|
|||
$this->status = "404 Not Found ";
|
||||
$this->message = "The specified domain was not found.";
|
||||
}
|
||||
|
||||
} else {
|
||||
$this->header = "400 Bad request";
|
||||
$this->status = "400 Not Found";
|
||||
|
@ -352,128 +351,117 @@ class RequestController
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public
|
||||
function handleDomainPostRequest(): void
|
||||
{
|
||||
$name = $_POST['name'] ?? '';
|
||||
$panel = $_POST['panel'] ?? '';
|
||||
$content = $_POST['content'] ?? '';
|
||||
if (empty($name)) {
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public
|
||||
function handleDomainPostRequest(): void
|
||||
{
|
||||
$name = $_POST['name'] ?? '';
|
||||
$panel = $_POST['panel'] ?? '';
|
||||
if (empty($name)) {
|
||||
$this->header = "400 Bad Request";
|
||||
$this->status = "400 Bad Request";
|
||||
$this->message = "A name is required";
|
||||
} else {
|
||||
if (empty($panel)) {
|
||||
$this->header = "400 Bad Request";
|
||||
$this->status = "400 Bad Request";
|
||||
$this->message = "A name is required";
|
||||
$this->message = "A panel ID is required.";
|
||||
} else {
|
||||
if (empty($a) && empty($aaaa) && empty($panel)) {
|
||||
$this->header = "400 Bad Request";
|
||||
$this->status = "400 Bad Request";
|
||||
$this->message = "At least one IP address or panel ID is required.";
|
||||
if ($this->domainRepository->findByName(name: $name)) {
|
||||
$this->header = "400 Bad request";
|
||||
$this->status = "400 Bad request";
|
||||
$this->message = "Domain: $name already exists.";
|
||||
} else {
|
||||
if ($this->domainRepository->findByName(name: $name)) {
|
||||
$this->header = "400 Bad request";
|
||||
$this->status = "400 Bad request";
|
||||
$this->message = "Domain: $name already exists.";
|
||||
$domain = new Domain(name: $name, panel: $panel);
|
||||
if ($result = $this->domainRepository->insert(domain: $domain)) {
|
||||
$this->header = "201 Created";
|
||||
$this->status = "201 Created";
|
||||
} else {
|
||||
$domain = new Domain(name: $name, content: $content);
|
||||
if ($result = $this->domainRepository->insert(domain: $domain)) {
|
||||
$this->header = "201 Created";
|
||||
$this->status = "201 Created";
|
||||
} else {
|
||||
$this->header = "500 Server error";
|
||||
$this->status = "500 Server error";
|
||||
}
|
||||
$this->message = $result;
|
||||
$this->header = "500 Server error";
|
||||
$this->status = "500 Server error";
|
||||
}
|
||||
$this->message = $result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public
|
||||
function handleDomainPutRequest(): void
|
||||
{
|
||||
$putData = fopen(filename: 'php://input', mode: 'r');
|
||||
$data = fread(stream: $putData, length: 512);
|
||||
$params = explode(separator: '&', string: $data);
|
||||
|
||||
foreach ($params as $param) {
|
||||
[$key, $value] = explode(separator: '=', string: $param);
|
||||
$put[$key] = $value;
|
||||
}
|
||||
$id = $put['id'] ?? 0;
|
||||
$name = $put['name'] ?? '';
|
||||
$content = $put['content'] ?? "";
|
||||
|
||||
if ($id == 0) {
|
||||
$this->status = "400 Bad Request";
|
||||
$this->message = "An ID is required";
|
||||
} else {
|
||||
if (!$this->domainRepository->findByID(id: $id)) {
|
||||
$this->status = "404 Not Found";
|
||||
$this->message = "Domain with ID : $id doesn't exist.";
|
||||
} else {
|
||||
// TODO not required, as we rely on the ID
|
||||
if (empty($name)) {
|
||||
$this->status = "400 Bad Request";
|
||||
$this->message = "A name is required";
|
||||
} else {
|
||||
if (empty($a) && empty($aaaa)) {
|
||||
$this->status = "400 Bad Request";
|
||||
$this->message = "At least one IP address is required.";
|
||||
} else {
|
||||
$domain = new Domain(name: $name, id: $id, content: $content);
|
||||
$this->domainRepository->update(domain: $domain);
|
||||
$this->header = "201 Updated";
|
||||
$this->status = "201 Updated";
|
||||
$this->message = "201 Updated";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public
|
||||
function handleDomainDeleteRequest(): void
|
||||
{
|
||||
$deleteData = fopen(filename: 'php://input', mode: 'r');
|
||||
$data = fread(stream: $deleteData, length: 512);
|
||||
$params = explode(separator: '&', string: $data);
|
||||
|
||||
foreach ($params as $param) {
|
||||
[$key, $value] = explode(separator: '=', string: $param);
|
||||
$delete[$key] = $value;
|
||||
}
|
||||
|
||||
$id = $delete['id'] ?? 0;
|
||||
|
||||
if ($id == 0) {
|
||||
$this->header = "400 Bad Request";
|
||||
$this->status = "400 Bad Request";
|
||||
$this->message = "You need to supply an ID.";
|
||||
} else {
|
||||
|
||||
if (!$domain = $this->domainRepository->findByID(id: $id)) {
|
||||
$this->header = "400 Bad Request";
|
||||
$this->status = "400 Bad Request";
|
||||
$this->message = "There is no domain with ID $id.";
|
||||
} else {
|
||||
$this->domainRepository->delete(domain: $domain);
|
||||
$this->header = "204 No content.";
|
||||
$this->status = "204 No content.";
|
||||
$this->message = "The domain $id has been deleted.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function handleDomainPutRequest(): void
|
||||
{
|
||||
$putData = fopen(filename: 'php://input', mode: 'r');
|
||||
$data = fread(stream: $putData, length: 512);
|
||||
$params = explode(separator: '&', string: $data);
|
||||
|
||||
foreach ($params as $param) {
|
||||
[$key, $value] = explode(separator: '=', string: $param);
|
||||
$put[$key] = $value;
|
||||
}
|
||||
$id = $put['id'] ?? 0;
|
||||
$name = $put['name'] ?? '';
|
||||
$panel = $put['panel'] ?? "";
|
||||
|
||||
if ($id == 0) {
|
||||
$this->header = "400 Bad Request";
|
||||
$this->status = "400 Bad Request";
|
||||
$this->message = "An ID is required";
|
||||
} else {
|
||||
if (!$this->domainRepository->findByID(id: $id)) {
|
||||
$this->status = "404 Not Found";
|
||||
$this->message = "Domain with ID : $id doesn't exist.";
|
||||
} else {
|
||||
// TODO not required, as we rely on the ID
|
||||
$domain = new Domain(name: $name, panel: $panel, id: $id);
|
||||
$this->domainRepository->update(domain: $domain);
|
||||
$this->header = "201 Updated";
|
||||
$this->status = "201 Updated";
|
||||
$this->message = "201 Updated";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public
|
||||
function handleDomainDeleteRequest(): void
|
||||
{
|
||||
$deleteData = fopen(filename: 'php://input', mode: 'r');
|
||||
$data = fread(stream: $deleteData, length: 512);
|
||||
$params = explode(separator: '&', string: $data);
|
||||
|
||||
foreach ($params as $param) {
|
||||
[$key, $value] = explode(separator: '=', string: $param);
|
||||
$delete[$key] = $value;
|
||||
}
|
||||
|
||||
$id = $delete['id'] ?? 0;
|
||||
|
||||
if ($id == 0) {
|
||||
$this->header = "400 Bad Request";
|
||||
$this->status = "400 Bad Request";
|
||||
$this->message = "You need to supply an ID.";
|
||||
} else {
|
||||
|
||||
if (!$domain = $this->domainRepository->findByID(id: $id)) {
|
||||
$this->header = "400 Bad Request";
|
||||
$this->status = "400 Bad Request";
|
||||
$this->message = "There is no domain with ID $id.";
|
||||
} else {
|
||||
$this->domainRepository->delete(domain: $domain);
|
||||
$this->header = "204 No content.";
|
||||
$this->status = "204 No content.";
|
||||
$this->message = "The domain $id has been deleted.";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue