1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-18 00:53:10 +01:00
invoiceninja/app/Http/Controllers/Support/Messages/SendingController.php

86 lines
2.9 KiB
PHP
Raw Normal View History

<?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
{
2019-10-17 11:31:47 +02:00
/**
* 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-MINIMUM-CLIENT-VERSION", ref="#/components/headers/X-MINIMUM-CLIENT-VERSION"),
2019-10-17 11:31:47 +02:00
* @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",
2019-10-17 11:31:47 +02:00
* description="Unexpected Error",
* @OA\JsonContent(ref="#/components/schemas/Error"),
* ),
* )
2020-10-28 11:10:49 +01:00
* @param Request $request
* @return \Illuminate\Http\JsonResponse
2019-10-17 11:31:47 +02:00
*/
public function __invoke(Request $request)
{
$request->validate([
'message' => ['required'],
]);
$send_logs = false;
if ($request->has('send_logs')) {
$send_logs = $request->input('send_logs');
}
Mail::to(config('ninja.contact.ninja_official_contact'))
->send(new SupportMessageSent($request->message, $send_logs));
return response()->json([
'success' => true,
], 200);
}
}