Files
w4rpservices/app/Http/Controllers/Logistics/StructureRequestController.php

89 lines
2.7 KiB
PHP

<?php
namespace App\Http\Controllers\Logistics;
//Internal Libraries
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Log;
//Jobs
use App\Jobs\ProcessSendEveMailJob;
//Library Helpers
use App\Library\Lookups\LookupHelper;
//Models
use App\Models\Logistics\AnchorStructure;
use App\Models\Jobs\JobSendEveMail;
use App\Models\User\UserPermission;
class StructureRequestController extends Controller
{
public function __construct() {
$this->middleware('auth');
$this->middleware('role:User');
}
public function displayForm() {
return view('structurerequest.requeststructure');
}
public function storeForm(Request $request) {
$this->validate($request, [
'corporation_name' => 'required',
'system' => 'required',
'structure_size' => 'required',
'structure_type' => 'required',
'requested_drop_time' => 'required',
'requester' => 'required',
]);
$lookup = new LookupHelper;
$config = config('esi');
$requesterId = $lookup->CharacterNameToId($request->requester);
$corporationId = $lookup->CorporationNameToId($request->corporation_name);
AnchorStructure::insert([
'corporation_id' => $corporationId,
'corporation_name' => $request->corporation_name,
'system' => $request->system,
'structure_size' => $request->structure_size,
'structure_type' => $request->structure_type,
'requested_drop_time' => $request->requested_drop_time,
'requester_id' => $requesterId,
'requester' => $request->requester,
]);
//Send a mail out to the FC Team
$fcTeam = UserPermission::where([
'permission' => 'fc.team',
])->get();
//Set the mail delay
$delay = 5;
foreach($fcTeam as $fc) {
$body = "Structure Anchor Request has been entered.<br>";
$body .= "Please check the W4RP Services Site for the structure information.<br>";
$body .= "<br>Sincerely,<br>";
$body .= "Warped Intentions Leadership<br>";
//Dispatch the mail job
$mail = new JobSendEveMail;
$mail->sender = $config['primary'];
$mail->subject = "New Structure Anchor Request";
$mail->body = $body;
$mail->recipient = (int)$fc->character_id;
$mail->recipient_type = 'character';
ProcessSendEveMailJob::dispatch($mail)->onQueue('mail')->delay($delay);
$delay += 15;
}
return redirect('/structures/display/requests');
}
}