1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-10 21:22:58 +01:00
invoiceninja/app/Http/Controllers/Support/Messages/SendingController.php
2019-10-17 20:31:47 +11:00

81 lines
2.6 KiB
PHP

<?php
namespace App\Http\Controllers\Support\Messages;
use App\Http\Controllers\Controller;
use App\Mail\SupportMessageSent;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
class SendingController extends Controller
{
/**
* Send a support message.
*
* @OA\Post(
* path="/api/v1/support/messages/send",
* operationId="supportMessage",
* tags={"support"},
* summary="Sends a support message to Invoice Ninja team",
* description="Allows a user to send a support message to the Invoice Ninja Team",
* @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\RequestBody(
* description="The message",
* required=true,
* @OA\MediaType(
* mediaType="application/json",
* @OA\Schema(
* type="string",
* @OA\Property(
* property="message",
* description="The support message",
* type="string",
* ),
* )
* ),
* ),
* @OA\Response(
* response=200,
* description="Success",
* @OA\Header(header="X-API-Version", ref="#/components/headers/X-API-Version"),
* @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\MediaType(
* mediaType="application/json",
* @OA\Schema(
* type="array",
* @OA\Items(
* type="string",
* description="Server response",
* example=true,
* ),
* )
* )
* ),
* @OA\Response(
* response="default",
* description="Unexpected Error",
* @OA\JsonContent(ref="#/components/schemas/Error"),
* ),
* )
*
*/
public function __invoke(Request $request)
{
$request->validate([
'message' => ['required'],
]);
Mail::to(config('ninja.contact.ninja_official_contact'))
->send(new SupportMessageSent($request->message));
return response()->json([
'success' => true
]);
}
}