forked from ACN-Coding-Test/laravel-coding-test-level-2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProjectController.php
76 lines (65 loc) · 2.36 KB
/
ProjectController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Gate;
use\Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Http\Request;
use App\Models\Project;
class ProjectController extends Controller
{
function getprojects(Request $request){
$name=$request->q ? $request->q : '';
$pageIndex=$request->pageIndex ? $request->pageIndex : '0';
$pageSize=$request->pageSize ? $request->pageSize : '3';
$sortBy=$request->sortBy ? $request->sortBy : 'name';
$sortDirection=$request->sortDirection ? $request->sortDirection : 'ASC';
$project_query=$data="";
if($name){
$project_query=Project::where("name", "like","%".$name."%");
if($pageIndex){
$project_query->offset($pageIndex);
}
if($pageSize){
$project_query->limit($pageSize);
}
if($sortDirection){
$project_query->orderBy($sortBy, $sortDirection);
}
$result = $project_query->get();
$data = json_decode($result, true);
}
if(!empty($data)){
return $result;
}else{
return response()->json(['message'=>'No Data Found']);
}
}
function createproject(Request $req){
if(Gate::allows('isProductOwner')){
$input['name']=$req->input('name');
$input['product_owner_id']=$req->input('product_owner_id');
$project = Project::create($input);
return $project;
}else{
return response()->json(['message'=>'Only PRODUCT OWNER is Allowed']);
}
}
function updateproject(Request $req){
$project = Project::find($req->id);
if($project){
if(Gate::allows('updateProject',$project)){
$input = $req->all();
$result=$project->update($input);
if($result){
return response()->json(['message'=>'Successfully Updated']);
}else{
return response()->json(['message'=>'Update Failed']);
}
}else{
return response()->json(['message'=>'Only PRODUCT OWNER is Allowed']);
}
}else{
return response()->json(['message'=>'Invalid Project']);
}
}
}