initialize project

This commit is contained in:
Afrina Alimi
2024-02-08 09:30:14 +08:00
commit 25d85dac75
206 changed files with 50977 additions and 0 deletions
@@ -0,0 +1,45 @@
<?php
namespace App\Http\Controllers\API\v1\Position;
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
use App\Http\Controllers\Controller;
use App\Http\Controllers\Util;
use App\Election;
use App\Position;
class AddPositionController extends Controller
{
public function __invoke(Request $request)
{
$this->validateRequest($request);
$this->insertPosition($request);
$result = [
'status' => 'success',
'message'=> 'Position added successfully'
];
return response()->json($result);
}
private function validateRequest($request)
{
$this->validate($request, [
'name' => [
'required',
Rule::unique('position')->where(function($query){
$query->where('election_id', Util::getCurrentElection());
})
]
]);
}
private function insertPosition($request)
{
$position = $request->all();
$position['election_id'] = Util::getCurrentElection();
Position::create($position);
}
}
@@ -0,0 +1,24 @@
<?php
namespace App\Http\Controllers\API\v1\Position;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Position;
class DeletePositionController extends Controller
{
public function __invoke($id)
{
$position = Position::find($id);
$position->delete();
$result = [
'status' => 'success',
'message'=> 'Position deleted successfully'
];
return response()->json($result);
}
}
@@ -0,0 +1,17 @@
<?php
namespace App\Http\Controllers\API\v1\Position;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Http\Controllers\Util;
use App\Position;
class GetPositionController extends Controller
{
public function __invoke()
{
$election_id = Util::getCurrentElection();
return Position::where('election_id', $election_id)->get();
}
}
@@ -0,0 +1,44 @@
<?php
namespace App\Http\Controllers\API\v1\Position;
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
use App\Http\Controllers\Controller;
use App\Http\Controllers\Util;
use App\Position;
class UpdatePositionController extends Controller
{
public function __invoke(Request $request, $id)
{
$this->validateRequest($request, $id);
$this->updatePosition($request, $id);
$result = [
'status' => 'success',
'message'=> 'Position updated successfully'
];
return response()->json($result);
}
private function updatePosition($request, $id)
{
$position = Position::find($id);
$position->name = $request->name;
$position->save();
}
private function validateRequest($request, $id)
{
$this->validate($request, [
'name' => [
'required',
Rule::unique('position')->ignore($id)->where(function($query){
$query->where('election_id', Util::getCurrentElection());
})
]
]);
}
}