Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@
"zircote/swagger-php": "^5.8",
"psr/simple-cache": "^1.0",
"vaibhavpandeyvpz/phemail": "^1.1",
"doctrine/annotations": "^2.0",
"voku/html-min": "^5.0",
"league/commonmark": "^2.0",
"ezyang/htmlpurifier": "^4.18",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,24 @@

namespace {{MODULE_NAMESPACE}}\Controllers\OpenApi;

use OpenApi\Attributes as OA;

/**
* Class ApiController
* @package Modules\Api
* @OA\Info(
* title="Quantum API documentation",
* version="2.9.0",
* description=" *Quantum Documentation: https://quantumphp.io/en/docs/v1/overview"
* ),
* @OA\SecurityScheme(
* securityScheme="bearer_token",
* type="apiKey",
* name="Authorization",
* in="header"
* )
*/
#[OA\Info(
title: 'Quantum API documentation',
version: '3.x',
description: ' *Quantum Documentation: https://quantumphp.io/en/docs/v1/overview'
)]
#[OA\SecurityScheme(
securityScheme: 'bearer_token',
type: 'apiKey',
name: 'Authorization',
in: 'header'
)]
abstract class OpenApiController
{

}

Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

namespace {{MODULE_NAMESPACE}}\Controllers\OpenApi;

use OpenApi\Attributes as OA;
use Quantum\Http\Response;

/**
Expand All @@ -17,23 +18,25 @@ use Quantum\Http\Response;
abstract class OpenApiMainController extends OpenApiController
{

/**
* @OA\Get(
* path="/{{MODULE_NAME}}",
* tags={"{{MODULE_NAME}}"},
* summary="Get status of {{MODULE_NAME}}",
* description="Returns status of {{MODULE_NAME}} module.",
* @OA\Response(
* response=200,
* description="Successful response",
* @OA\JsonContent(
* type="object",
* @OA\Property(property="status", type="string", example="success"),
* @OA\Property(property="message", type="string", example="{{MODULE_NAME}} module.")
* )
* )
* )
*/
#[OA\Get(
path: '/{{MODULE_NAME}}',
tags: ['{{MODULE_NAME}}'],
summary: 'Get status of {{MODULE_NAME}}',
description: 'Returns status of {{MODULE_NAME}} module.',
responses: [
new OA\Response(
response: 200,
description: 'Successful response',
content: new OA\JsonContent(
type: 'object',
properties: [
new OA\Property(property: 'status', type: 'string', example: 'success'),
new OA\Property(property: 'message', type: 'string', example: '{{MODULE_NAME}} module.'),
]
)
),
]
)]
abstract public function index();

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

namespace {{MODULE_NAMESPACE}}\Controllers\OpenApi;

use OpenApi\Attributes as OA;
use Quantum\Http\Request;

/**
Expand All @@ -18,75 +19,80 @@ abstract class OpenApiAccountController extends OpenApiController
{
/**
* Update user info action
* @OA\Put(
* path="/api/account-settings/update",
* tags={"Account"},
* summary="Update user info",
* operationId="updateAccount",
* security={{"bearer_token": {}}},
* @OA\RequestBody(
* required=true,
* @OA\MediaType(
* mediaType="application/json",
* @OA\Schema(
* required={"firstname", "lastname"},
* @OA\Property(property="firstname", type="string"),
* @OA\Property(property="lastname", type="string"),
* example={"firstname": "Jon", "lastname": "Smit"}
* )
* )
* ),
* @OA\Response(
* response=200,
* description="Success",
* @OA\JsonContent(
* example={"status": "success", "message": "Updated successfully"}
* )
* ),
* @OA\Response(response=401, description="Unauthorized Request"),
* @OA\Response(response=422, description="Unprocessable Entity"),
* @OA\Response(response=429, description="Too Many Requests"),
* @OA\Response(response=500, description="Internal Server Error")
* )
*/
#[OA\Put(
path: '/api/account-settings/update',
tags: ['Account'],
summary: 'Update user info',
operationId: 'updateAccount',
security: [['bearer_token' => []]],
requestBody: new OA\RequestBody(
required: true,
content: new OA\MediaType(
mediaType: 'application/json',
schema: new OA\Schema(
required: ['firstname', 'lastname'],
properties: [
new OA\Property(property: 'firstname', type: 'string'),
new OA\Property(property: 'lastname', type: 'string'),
],
example: ['firstname' => 'Jon', 'lastname' => 'Smit']
)
)
),
responses: [
new OA\Response(
response: 200,
description: 'Success',
content: new OA\JsonContent(example: ['status' => 'success', 'message' => 'Updated successfully'])
),
new OA\Response(response: 401, description: 'Unauthorized Request'),
new OA\Response(response: 422, description: 'Unprocessable Entity'),
new OA\Response(response: 429, description: 'Too Many Requests'),
new OA\Response(response: 500, description: 'Internal Server Error'),
]
)]
abstract public function update(Request $request);

/**
* Update password action
* @OA\Put(
* path="/api/account-settings/update-password",
* tags={"Account"},
* summary="Update password",
* operationId="updatePassword",
* security={{"bearer_token": {}}},
* @OA\RequestBody(
* required=true,
* @OA\MediaType(
* mediaType="application/json",
* @OA\Schema(
* required={"current_password", "new_password", "confirm_password"},
* @OA\Property(property="current_password", type="string"),
* @OA\Property(property="new_password", type="string"),
* @OA\Property(property="confirm_password", type="string"),
* example={"current_password": "oldPassword", "new_password": "newPassword", "confirm_password": "newPassword"}
* )
* )
* ),
* @OA\Response(
* response=200,
* description="Success",
* @OA\JsonContent(
* example={"status": "success", "message": "Updated successfully"}
* )
* ),
* @OA\Response(response=401, description="Unauthorized Request"),
* @OA\Response(response=422, description="Unprocessable Entity"),
* @OA\Response(response=429, description="Too Many Requests"),
* @OA\Response(response=500, description="Internal Server Error")
* )
*/
#[OA\Put(
path: '/api/account-settings/update-password',
tags: ['Account'],
summary: 'Update password',
operationId: 'updatePassword',
security: [['bearer_token' => []]],
requestBody: new OA\RequestBody(
required: true,
content: new OA\MediaType(
mediaType: 'application/json',
schema: new OA\Schema(
required: ['current_password', 'new_password', 'confirm_password'],
properties: [
new OA\Property(property: 'current_password', type: 'string'),
new OA\Property(property: 'new_password', type: 'string'),
new OA\Property(property: 'confirm_password', type: 'string'),
],
example: [
'current_password' => 'oldPassword',
'new_password' => 'newPassword',
'confirm_password' => 'newPassword',
]
)
)
),
responses: [
new OA\Response(
response: 200,
description: 'Success',
content: new OA\JsonContent(example: ['status' => 'success', 'message' => 'Updated successfully'])
),
new OA\Response(response: 401, description: 'Unauthorized Request'),
new OA\Response(response: 422, description: 'Unprocessable Entity'),
new OA\Response(response: 429, description: 'Too Many Requests'),
new OA\Response(response: 500, description: 'Internal Server Error'),
]
)]
abstract public function updatePassword(Request $request);
}



Loading
Loading