birzha-legalizasia/app/Http/Controllers/API/ApplicationController.php

77 lines
1.9 KiB
PHP

<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use App\Http\Resources\ApplicationResource;
use App\Models\Application;
use App\Models\Attachment;
use App\Models\Documentgroup;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Auth;
class ApplicationController extends Controller
{
public function create(){
$account = Auth::user()->account;
if($account->aplication){
$account->aplication->delete();
//todo on delete cascade delete documents and files
}
$docGroup = Documentgroup::where('type',$account->type)
->whereHas('countries',function(Builder $query) use ($account){
$query->where('id',$account->country_id);
})
->with('documents')->first();
if(!$docGroup || $docGroup->documents->count() == 0){
return response([
'success' => false,
'message' => 'Required documents list was not found'
],400);
}
//todo create attachments here
$application = Application::create([
'account_id' => $account->id,
'status' => 'new'
]);
foreach ($docGroup->documents as $document){
$attachment = new Attachment([
'name' => $document->name,
'document_id' => $document->id
]);
$application->attachments()->attach($attachment);
}
$application->attachments()->save();
return ApplicationResource::make($application);
}
public function get()
{
$appication = Auth::user()
->account()
->aplication()
->with('attachments')
->first();
return ApplicationResource::make($appication);
}
public function apply(){
}
public function upload(){
}
}