mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-10 05:02:36 +01:00
Invoices OpenAPI
This commit is contained in:
parent
6ea2140578
commit
6d81f981f8
@ -96,9 +96,8 @@ class LoginController extends BaseController
|
|||||||
* @param \Illuminate\Http\Request $request The request
|
* @param \Illuminate\Http\Request $request The request
|
||||||
*
|
*
|
||||||
* @return Response|User Process user login.
|
* @return Response|User Process user login.
|
||||||
*/
|
*
|
||||||
|
*
|
||||||
/**
|
|
||||||
* @OA\Post(
|
* @OA\Post(
|
||||||
* path="/api/v1/login",
|
* path="/api/v1/login",
|
||||||
* operationId="postLogin",
|
* operationId="postLogin",
|
||||||
@ -192,6 +191,46 @@ class LoginController extends BaseController
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Refreshes the data feed with the current Company User
|
||||||
|
*
|
||||||
|
* @return CompanyUser Refresh Feed.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @OA\Post(
|
||||||
|
* path="/api/v1/refresh",
|
||||||
|
* operationId="refresh",
|
||||||
|
* tags={"refresh"},
|
||||||
|
* summary="Refreshes the dataset",
|
||||||
|
* description="Refreshes the dataset",
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Secret"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Token"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/include_static"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/clear_cache"),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=200,
|
||||||
|
* description="The Company User response",
|
||||||
|
* @OA\Header(header="X-API-TOKEN", ref="#/components/headers/X-API-TOKEN"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"),
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/CompanyUser"),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=422,
|
||||||
|
* description="Validation error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/ValidationError"),
|
||||||
|
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response="default",
|
||||||
|
* description="Unexpected Error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||||
|
* ),
|
||||||
|
* )
|
||||||
|
*
|
||||||
|
*/
|
||||||
public function refresh(Request $request)
|
public function refresh(Request $request)
|
||||||
{
|
{
|
||||||
$ct = CompanyUser::whereUserId(auth()->user()->id);
|
$ct = CompanyUser::whereUserId(auth()->user()->id);
|
||||||
|
@ -74,6 +74,40 @@ class InvoiceController extends BaseController
|
|||||||
* @param \App\Filters\InvoiceFilters $filters The filters
|
* @param \App\Filters\InvoiceFilters $filters The filters
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
|
*
|
||||||
|
* @OA\Get(
|
||||||
|
* path="/api/v1/invoices",
|
||||||
|
* operationId="getInvoices",
|
||||||
|
* tags={"invoices"},
|
||||||
|
* summary="Gets a list of invoices",
|
||||||
|
* description="Lists invoices, search and filters allow fine grained lists to be generated.
|
||||||
|
|
||||||
|
Query parameters can be added to performed more fine grained filtering of the invoices, these are handled by the InvoiceFilters class which defines the methods available",
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Secret"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Token"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=200,
|
||||||
|
* description="A list of invoices",
|
||||||
|
* @OA\Header(header="X-API-TOKEN", ref="#/components/headers/X-API-TOKEN"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"),
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Invoice"),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=422,
|
||||||
|
* description="Validation error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/ValidationError"),
|
||||||
|
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response="default",
|
||||||
|
* description="Unexpected Error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||||
|
* ),
|
||||||
|
* )
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
public function index(InvoiceFilters $filters)
|
public function index(InvoiceFilters $filters)
|
||||||
{
|
{
|
||||||
@ -90,6 +124,39 @@ class InvoiceController extends BaseController
|
|||||||
* @param \App\Http\Requests\Invoice\CreateInvoiceRequest $request The request
|
* @param \App\Http\Requests\Invoice\CreateInvoiceRequest $request The request
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @OA\Get(
|
||||||
|
* path="/api/v1/invoices/create",
|
||||||
|
* operationId="getInvoicesCreate",
|
||||||
|
* tags={"invoices"},
|
||||||
|
* summary="Gets a new blank invoice object",
|
||||||
|
* description="Returns a blank object with default values",
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Secret"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Token"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=200,
|
||||||
|
* description="A blank invoice object",
|
||||||
|
* @OA\Header(header="X-API-TOKEN", ref="#/components/headers/X-API-TOKEN"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"),
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Invoice"),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=422,
|
||||||
|
* description="Validation error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/ValidationError"),
|
||||||
|
*
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response="default",
|
||||||
|
* description="Unexpected Error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||||
|
* ),
|
||||||
|
* )
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
public function create(CreateInvoiceRequest $request)
|
public function create(CreateInvoiceRequest $request)
|
||||||
{
|
{
|
||||||
@ -107,7 +174,40 @@ class InvoiceController extends BaseController
|
|||||||
* @param \App\Http\Requests\Invoice\StoreInvoiceRequest $request The request
|
* @param \App\Http\Requests\Invoice\StoreInvoiceRequest $request The request
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*
|
||||||
|
*
|
||||||
|
* @OA\Post(
|
||||||
|
* path="/api/v1/invoices",
|
||||||
|
* operationId="storeInvoice",
|
||||||
|
* tags={"invoices"},
|
||||||
|
* summary="Adds a invoice",
|
||||||
|
* description="Adds an invoice to the system",
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Secret"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Token"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=200,
|
||||||
|
* description="Returns the saved invoice object",
|
||||||
|
* @OA\Header(header="X-API-TOKEN", ref="#/components/headers/X-API-TOKEN"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"),
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Invoice"),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=422,
|
||||||
|
* description="Validation error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/ValidationError"),
|
||||||
|
*
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response="default",
|
||||||
|
* description="Unexpected Error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||||
|
* ),
|
||||||
|
* )
|
||||||
|
*
|
||||||
|
*/
|
||||||
public function store(StoreInvoiceRequest $request)
|
public function store(StoreInvoiceRequest $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -128,7 +228,51 @@ class InvoiceController extends BaseController
|
|||||||
* @param \App\Models\Invoice $invoice The invoice
|
* @param \App\Models\Invoice $invoice The invoice
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*
|
||||||
|
*
|
||||||
|
* @OA\Get(
|
||||||
|
* path="/api/v1/invoices/{id}",
|
||||||
|
* operationId="showInvoice",
|
||||||
|
* tags={"invoices"},
|
||||||
|
* summary="Shows an invoice",
|
||||||
|
* description="Displays an invoice by id",
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Secret"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Token"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||||
|
* @OA\Parameter(
|
||||||
|
* name="id",
|
||||||
|
* in="path",
|
||||||
|
* description="The Invoice Hashed ID",
|
||||||
|
* example="D2J234DFA",
|
||||||
|
* required=true,
|
||||||
|
* @OA\Schema(
|
||||||
|
* type="string",
|
||||||
|
* format="string",
|
||||||
|
* ),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=200,
|
||||||
|
* description="Returns the invoice object",
|
||||||
|
* @OA\Header(header="X-API-TOKEN", ref="#/components/headers/X-API-TOKEN"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"),
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Invoice"),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=422,
|
||||||
|
* description="Validation error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/ValidationError"),
|
||||||
|
*
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response="default",
|
||||||
|
* description="Unexpected Error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||||
|
* ),
|
||||||
|
* )
|
||||||
|
*
|
||||||
|
*/
|
||||||
public function show(ShowInvoiceRequest $request, Invoice $invoice)
|
public function show(ShowInvoiceRequest $request, Invoice $invoice)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -143,7 +287,50 @@ class InvoiceController extends BaseController
|
|||||||
* @param \App\Models\Invoice $invoice The invoice
|
* @param \App\Models\Invoice $invoice The invoice
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*
|
||||||
|
* @OA\Get(
|
||||||
|
* path="/api/v1/invoices/{id}/edit",
|
||||||
|
* operationId="editInvoice",
|
||||||
|
* tags={"invoices"},
|
||||||
|
* summary="Shows an invoice for editting",
|
||||||
|
* description="Displays an invoice by id",
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Secret"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Token"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||||
|
* @OA\Parameter(
|
||||||
|
* name="id",
|
||||||
|
* in="path",
|
||||||
|
* description="The Invoice Hashed ID",
|
||||||
|
* example="D2J234DFA",
|
||||||
|
* required=true,
|
||||||
|
* @OA\Schema(
|
||||||
|
* type="string",
|
||||||
|
* format="string",
|
||||||
|
* ),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=200,
|
||||||
|
* description="Returns the invoice object",
|
||||||
|
* @OA\Header(header="X-API-TOKEN", ref="#/components/headers/X-API-TOKEN"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"),
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Invoice"),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=422,
|
||||||
|
* description="Validation error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/ValidationError"),
|
||||||
|
*
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response="default",
|
||||||
|
* description="Unexpected Error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||||
|
* ),
|
||||||
|
* )
|
||||||
|
*
|
||||||
|
*/
|
||||||
public function edit(EditInvoiceRequest $request, Invoice $invoice)
|
public function edit(EditInvoiceRequest $request, Invoice $invoice)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -158,7 +345,51 @@ class InvoiceController extends BaseController
|
|||||||
* @param \App\Models\Invoice $invoice The invoice
|
* @param \App\Models\Invoice $invoice The invoice
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
*/
|
*
|
||||||
|
*
|
||||||
|
* @OA\Put(
|
||||||
|
* path="/api/v1/invoices/{id}",
|
||||||
|
* operationId="updateInvoice",
|
||||||
|
* tags={"invoices"},
|
||||||
|
* summary="Updates an invoice",
|
||||||
|
* description="Handles the updating of an invoice by id",
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Secret"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Token"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||||
|
* @OA\Parameter(
|
||||||
|
* name="id",
|
||||||
|
* in="path",
|
||||||
|
* description="The Invoice Hashed ID",
|
||||||
|
* example="D2J234DFA",
|
||||||
|
* required=true,
|
||||||
|
* @OA\Schema(
|
||||||
|
* type="string",
|
||||||
|
* format="string",
|
||||||
|
* ),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=200,
|
||||||
|
* description="Returns the invoice object",
|
||||||
|
* @OA\Header(header="X-API-TOKEN", ref="#/components/headers/X-API-TOKEN"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"),
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Invoice"),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=422,
|
||||||
|
* description="Validation error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/ValidationError"),
|
||||||
|
*
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response="default",
|
||||||
|
* description="Unexpected Error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||||
|
* ),
|
||||||
|
* )
|
||||||
|
*
|
||||||
|
*/
|
||||||
public function update(UpdateInvoiceRequest $request, Invoice $invoice)
|
public function update(UpdateInvoiceRequest $request, Invoice $invoice)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -177,6 +408,48 @@ class InvoiceController extends BaseController
|
|||||||
* @param \App\Models\Invoice $invoice
|
* @param \App\Models\Invoice $invoice
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
|
*
|
||||||
|
* @OA\Delete(
|
||||||
|
* path="/api/v1/invoices/{id}",
|
||||||
|
* operationId="deleteInvoice",
|
||||||
|
* tags={"invoices"},
|
||||||
|
* summary="Deletes a invoice",
|
||||||
|
* description="Handles the deletion of an invoice by id",
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Secret"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Token"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||||
|
* @OA\Parameter(
|
||||||
|
* name="id",
|
||||||
|
* in="path",
|
||||||
|
* description="The Invoice Hashed ID",
|
||||||
|
* example="D2J234DFA",
|
||||||
|
* required=true,
|
||||||
|
* @OA\Schema(
|
||||||
|
* type="string",
|
||||||
|
* format="string",
|
||||||
|
* ),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=200,
|
||||||
|
* description="Returns a HTTP status",
|
||||||
|
* @OA\Header(header="X-API-TOKEN", ref="#/components/headers/X-API-TOKEN"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=422,
|
||||||
|
* description="Validation error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/ValidationError"),
|
||||||
|
*
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response="default",
|
||||||
|
* description="Unexpected Error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||||
|
* ),
|
||||||
|
* )
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
public function destroy(DestroyInvoiceRequest $request, Invoice $invoice)
|
public function destroy(DestroyInvoiceRequest $request, Invoice $invoice)
|
||||||
{
|
{
|
||||||
@ -191,6 +464,53 @@ class InvoiceController extends BaseController
|
|||||||
* Perform bulk actions on the list view
|
* Perform bulk actions on the list view
|
||||||
*
|
*
|
||||||
* @return Collection
|
* @return Collection
|
||||||
|
*
|
||||||
|
* @OA\Post(
|
||||||
|
* path="/api/v1/invoices/bulk",
|
||||||
|
* operationId="bulkInvoices",
|
||||||
|
* tags={"invoices"},
|
||||||
|
* summary="Performs bulk actions on an array of invoices",
|
||||||
|
* description="",
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Secret"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Token"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/index"),
|
||||||
|
* @OA\RequestBody(
|
||||||
|
* description="User credentials",
|
||||||
|
* required=true,
|
||||||
|
* @OA\MediaType(
|
||||||
|
* mediaType="application/json",
|
||||||
|
* @OA\Schema(
|
||||||
|
* type="array",
|
||||||
|
* @OA\Items(
|
||||||
|
* type="integer",
|
||||||
|
* description="Array of hashed IDs to be bulk 'actioned",
|
||||||
|
* example="[0,1,2,3]",
|
||||||
|
* ),
|
||||||
|
* )
|
||||||
|
* )
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=200,
|
||||||
|
* description="The Company User response",
|
||||||
|
* @OA\Header(header="X-API-TOKEN", ref="#/components/headers/X-API-TOKEN"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"),
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/CompanyUser"),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=422,
|
||||||
|
* description="Validation error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/ValidationError"),
|
||||||
|
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response="default",
|
||||||
|
* description="Unexpected Error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||||
|
* ),
|
||||||
|
* )
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
public function bulk()
|
public function bulk()
|
||||||
{
|
{
|
||||||
@ -213,6 +533,73 @@ class InvoiceController extends BaseController
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @OA\Get(
|
||||||
|
* path="/api/v1/invoices/{id}/{action}",
|
||||||
|
* operationId="actionInvoice",
|
||||||
|
* tags={"invoices"},
|
||||||
|
* summary="Performs a custom action on an invoice",
|
||||||
|
* description="Performs a custom action on an invoice.
|
||||||
|
|
||||||
|
The current range of actions are as follows
|
||||||
|
- clone_to_invoice
|
||||||
|
- clone_to_quote
|
||||||
|
- history
|
||||||
|
- delivery_note
|
||||||
|
- mark_paid
|
||||||
|
- download
|
||||||
|
- archive
|
||||||
|
- delete
|
||||||
|
- email",
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Secret"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Api-Token"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/X-Requested-With"),
|
||||||
|
* @OA\Parameter(ref="#/components/parameters/include"),
|
||||||
|
* @OA\Parameter(
|
||||||
|
* name="id",
|
||||||
|
* in="path",
|
||||||
|
* description="The Invoice Hashed ID",
|
||||||
|
* example="D2J234DFA",
|
||||||
|
* required=true,
|
||||||
|
* @OA\Schema(
|
||||||
|
* type="string",
|
||||||
|
* format="string",
|
||||||
|
* ),
|
||||||
|
* ),
|
||||||
|
* @OA\Parameter(
|
||||||
|
* name="action",
|
||||||
|
* in="path",
|
||||||
|
* description="The action string to be performed",
|
||||||
|
* example="clone_to_quote",
|
||||||
|
* required=true,
|
||||||
|
* @OA\Schema(
|
||||||
|
* type="string",
|
||||||
|
* format="string",
|
||||||
|
* ),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=200,
|
||||||
|
* description="Returns the invoice object",
|
||||||
|
* @OA\Header(header="X-API-TOKEN", ref="#/components/headers/X-API-TOKEN"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Remaining", ref="#/components/headers/X-RateLimit-Remaining"),
|
||||||
|
* @OA\Header(header="X-RateLimit-Limit", ref="#/components/headers/X-RateLimit-Limit"),
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Invoice"),
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response=422,
|
||||||
|
* description="Validation error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/ValidationError"),
|
||||||
|
*
|
||||||
|
* ),
|
||||||
|
* @OA\Response(
|
||||||
|
* response="default",
|
||||||
|
* description="Unexpected Error",
|
||||||
|
* @OA\JsonContent(ref="#/components/schemas/Error"),
|
||||||
|
* ),
|
||||||
|
* )
|
||||||
|
*
|
||||||
|
*/
|
||||||
public function action(ActionInvoiceRequest $request, Invoice $invoice, $action)
|
public function action(ActionInvoiceRequest $request, Invoice $invoice, $action)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
43
app/Http/Controllers/OpenAPI/InvoiceSchema.php
Normal file
43
app/Http/Controllers/OpenAPI/InvoiceSchema.php
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @OA\Schema(
|
||||||
|
* schema="Invoice",
|
||||||
|
* type="object",
|
||||||
|
* @OA\Property(property="id", type="string", example="Opnel5aKBz", description="_________"),
|
||||||
|
* @OA\Property(property="user_id", type="string", example="", description="__________"),
|
||||||
|
* @OA\Property(property="company_id", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="client_id", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="status_id", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="invoice_type_id", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="invoice_number", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="po_number", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="terms", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="public_notes", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="private_notes", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="footer", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="custom_value1", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="custom_value2", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="custom_value3", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="custom_value4", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="tax_name1", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="tax_name2", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="tax_rate1", type="number", format="float", example="10.00", description="_________"),
|
||||||
|
* @OA\Property(property="tax_rate2", type="number", format="float", example="10.00", description="_________"),
|
||||||
|
* @OA\Property(property="tax_name3", type="string", example="", description="________"),
|
||||||
|
* @OA\Property(property="tax_rate3", type="number", format="float", example="10.00", description="_________"),
|
||||||
|
* @OA\Property(property="line_items", type="object", example="", description="_________"),
|
||||||
|
* @OA\Property(property="settings", type="object", example="", description="_________"),
|
||||||
|
* @OA\Property(property="amount", type="number", format="float", example="10.00", description="_________"),
|
||||||
|
* @OA\Property(property="balance", type="number", format="float", example="10.00", description="_________"),
|
||||||
|
* @OA\Property(property="discount", type="number", format="float", example="10.00", description="_________"),
|
||||||
|
* @OA\Property(property="partial", type="number", format="float", example="10.00", description="_________"),
|
||||||
|
* @OA\Property(property="is_amount_discount", type="boolean", example=true, description="_________"),
|
||||||
|
* @OA\Property(property="is_deleted", type="boolean", example=true, description="_________"),
|
||||||
|
* @OA\Property(property="invoice_date", type="string", format="date", example="1994-07-30", description="_________"),
|
||||||
|
* @OA\Property(property="partial_due_date", type="string", format="date", example="1994-07-30", description="_________"),
|
||||||
|
* @OA\Property(property="due_date", type="string", format="date", example="1994-07-30", description="_________"),
|
||||||
|
* @OA\Property(property="last_viewed", type="number", format="integer", example="1434342123", description="Timestamp"),
|
||||||
|
* @OA\Property(property="updated_at", type="number", format="integer", example="1434342123", description="Timestamp"),
|
||||||
|
* @OA\Property(property="archived_at", type="number", format="integer", example="1434342123", description="Timestamp"),
|
||||||
|
* )
|
||||||
|
*/
|
Loading…
Reference in New Issue
Block a user