diff --git a/app/Http/Controllers/ProjectController.php b/app/Http/Controllers/ProjectController.php new file mode 100644 index 0000000..b8372b3 --- /dev/null +++ b/app/Http/Controllers/ProjectController.php @@ -0,0 +1,52 @@ +0)){ + return $result; + }else{ + return response()->json(['message'=>'No Data Found']); + } + } + + function createproject(Request $req){ + $project = new Project; + $project->name=$req->input('name'); + $project->save(); + return $project; + } + + function updateproject(Request $req){ + $project = Project::find($req->id); + $project->name=$req->input('name'); + $result=$project->save(); + + if($result){ + return response()->json(['message'=>'Successfully Updated']); + }else{ + return response()->json(['message'=>'Update Failed']); + } + } + + function deleteproject(Request $req){ + $project = Project::find($req->id); + $result = $project->delete(); + if($result){ + return response()->json(['message'=>'Successfully Deleted']); + }else{ + return response()->json(['message'=>'Delete Failed']); + } + } +} diff --git a/app/Http/Controllers/TaskController.php b/app/Http/Controllers/TaskController.php new file mode 100644 index 0000000..1636ed0 --- /dev/null +++ b/app/Http/Controllers/TaskController.php @@ -0,0 +1,60 @@ +0)){ + return $result; + }else{ + return response()->json(['message'=>'No Data Found']); + } + } + + function createtask(Request $req){ + $task = new Task; + $task->title=$req->input('title'); + $task->description =$req->input('description'); + $task->status=$req->input('status'); + $task->project_id=$req->input('project_id'); + $task->user_id=$req->input('user_id'); + $task->save(); + return $task; + } + + function updatetask(Request $req){ + $task = Task::find($req->id); + $task->title=$req->input('title'); + $task->description =$req->input('description'); + $task->status=$req->input('status'); + $task->project_id=$req->input('project_id'); + $task->user_id=$req->input('user_id'); + $result=$task->save(); + + if($result){ + return response()->json(['message'=>'Successfully Updated']); + }else{ + return response()->json(['message'=>'Update Failed']); + } + } + + function deletetask(Request $req){ + $task = Task::find($req->id); + $result = $task->delete(); + if($result){ + return response()->json(['message'=>'Successfully Deleted']); + }else{ + return response()->json(['message'=>'Delete Failed']); + } + } +} diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php new file mode 100644 index 0000000..2741c78 --- /dev/null +++ b/app/Http/Controllers/UserController.php @@ -0,0 +1,57 @@ +0)){ + return $result; + }else{ + return response()->json(['message'=>'No Data Found']); + } + } + + function createresource(Request $req){ + $user = new User; + $user->name=$req->input('name'); + $user->email=$req->input('email'); + $user->password=md5($req->input('password')); + $user->save(); + return $user; + } + + function updateresource(Request $req){ + $user = User::find($req->id); + $user->name=$req->input('name'); + $user->email->$req->input('email'); + $result=$device->save(); + + if($result){ + return response()->json(['message'=>'Successfully Updated']); + }else{ + return response()->json(['message'=>'Update Failed']); + } + } + + function deleteresource(Request $req){ + $user = User::find($req->id); + $result = $user->delete(); + if($result){ + return response()->json(['message'=>'Successfully Deleted']); + }else{ + return response()->json(['message'=>'Delete Failed']); + } + } + + +} diff --git a/app/Models/Project.php b/app/Models/Project.php new file mode 100644 index 0000000..a46b129 --- /dev/null +++ b/app/Models/Project.php @@ -0,0 +1,16 @@ +getKey() === null) { + $model->setAttribute($model->getKeyName(), Str::uuid()->toString()); + } + }); + } + + public function getIncrementing() + { + return false; + } + + public function getKeyType() + { + return 'string'; + } + +} + +?> \ No newline at end of file diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php index 621a24e..bb5c446 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -14,11 +14,12 @@ class CreateUsersTable extends Migration public function up() { Schema::create('users', function (Blueprint $table) { - $table->id(); - $table->string('name'); + $table->uuid('id')->primary(); + $table->string('name')->unique(); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); + $table->enum('role',['ADMIN','PRODUCT_OWNER','TEAM_MEMBER'])->default('TEAM_MEMBER'); $table->rememberToken(); $table->timestamps(); }); diff --git a/database/migrations/2023_03_03_034916_create_projects_table.php b/database/migrations/2023_03_03_034916_create_projects_table.php new file mode 100644 index 0000000..a49f5db --- /dev/null +++ b/database/migrations/2023_03_03_034916_create_projects_table.php @@ -0,0 +1,32 @@ +uuid('id')->primary(); + $table->string('name')->unique(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('projects'); + } +} diff --git a/database/migrations/2023_03_03_035104_create_tasks_table.php b/database/migrations/2023_03_03_035104_create_tasks_table.php new file mode 100644 index 0000000..16a925e --- /dev/null +++ b/database/migrations/2023_03_03_035104_create_tasks_table.php @@ -0,0 +1,51 @@ +uuid('id')->primary(); + $table->string('title')->nullable(false); + $table->string('description')->nullable(); + $table->enum('status',['NOT_STARTED','IN_PROGRESS','READY_FOR_TEST','COMPLETED'])->default('NOT_STARTED'); + $table->uuid('project_id'); + $table->foreign('project_id') + ->references('id') + ->on('projects') + ->nullable(false) + ->onDelete('restrict') + ->onUpdate('restrict'); + $table->uuid('user_id'); + $table->foreign('user_id') + ->references('id') + ->on('users') + ->nullable(false) + ->onDelete('restrict') + ->onUpdate('restrict'); + + $table->timestamps(); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('tasks'); + } +} diff --git a/routes/api.php b/routes/api.php index eb6fa48..ec4c1a1 100644 --- a/routes/api.php +++ b/routes/api.php @@ -2,6 +2,9 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; +use App\Http\Controllers\UserController; +use App\Http\Controllers\ProjectController; +use App\Http\Controllers\TaskController; /* |-------------------------------------------------------------------------- @@ -14,6 +17,27 @@ | */ -Route::middleware('auth:sanctum')->get('/user', function (Request $request) { + +/*Route::middleware('auth:sanctum')->get('/user', function (Request $request) { return $request->user(); +});*/ + +Route::group(['prefix'=>'v1'], function (){ + Route::get("users/{id?}",[UserController::class, 'getresources']); + Route::post("users",[UserController::class, 'createresource']); + Route::put("users/{id}",[UserController::class, 'updateresource']); + Route::delete("users/{id}",[UserController::class, 'deleteresource']); + + Route::get("projects/{id?}",[ProjectController::class, 'getprojects']); + Route::post("projects",[ProjectController::class, 'createproject']); + Route::put("projects/{id}",[ProjectController::class, 'updateproject']); + Route::delete("projects/{id}",[ProjectController::class, 'deleteproject']); + + Route::get("tasks/{id?}",[TaskController::class, 'getTasks']); + Route::post("tasks",[TaskController::class, 'createtask']); + Route::put("tasks/{id}",[TaskController::class, 'updatetask']); + Route::delete("tasks/{id}",[TaskController::class, 'deletetask']); + }); + +