77 lines
1.9 KiB
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(){
|
|
|
|
}
|
|
|
|
}
|