diff --git a/app/Events.php b/app/Events.php new file mode 100644 index 0000000000000000000000000000000000000000..bb9798219d69076c1eb6b21f1736f0fd9223e67a --- /dev/null +++ b/app/Events.php @@ -0,0 +1,13 @@ +<?php + +namespace App; + +use Illuminate\Database\Eloquent\Model; + +class Events extends Model +{ + protected $table = 'events'; + protected $primaryKey = 'id'; + protected $fillable = ['group_id', 'time']; + public $timestamps = true; +} \ No newline at end of file diff --git a/app/Http/Controllers/EventsController.php b/app/Http/Controllers/EventsController.php new file mode 100644 index 0000000000000000000000000000000000000000..4e09c4446bfd9c9b4dff44313ee4849d29b8faee --- /dev/null +++ b/app/Http/Controllers/EventsController.php @@ -0,0 +1,65 @@ +<?php + +namespace App\Http\Controllers; + +use Illuminate\Http\Request; +use App\Events; +use Illuminate\Support\Facades\DB; + +class EventsController extends Controller +{ + public function store(Request $request) { + $request->validate([ + 'group_id' => 'required', + 'time' => 'required' + ]); + $input = $request->all(); + + DB::beginTransaction(); + + $event = Events::create([ + 'group_id' => $input['group_id'], + 'time' => $input['time'], + ]); + + DB::commit(); + + return response(json_encode([ + 'statusMessage' => 'success', + 'data' => $event->toArray() + ]), 200); + } + + public function show(Request $request, $groupId) { + $isGroupExist = Events::find($groupId); + + if (is_null($isGroupExist)) { + return response(json_encode([ + 'statusMessage' => 'Not Found' + ]), 404); + } else { + $events = $isGroupExist->toArray(); + + return response(json_encode([ + 'statusMessage' => 'Success', + 'data' => $events + ]), 200); + } + } + + public function destroy(Request $request, $groupId) { + $event = Events::find($groupId); + + if (is_null($group)) { + return response(json_encode([ + 'statusMessage' => 'Bad Request' + ]), 400); + } else { + $event->delete; + + return response(json_encode([ + 'statusMessage' => 'Success' + ]), 200); + } + } +} \ No newline at end of file diff --git a/database/migrations/2019_02_25_062350_create_events_table.php b/database/migrations/2019_02_25_062350_create_events_table.php new file mode 100644 index 0000000000000000000000000000000000000000..22b4071e7b7e8cdee0da843db7e85057e9452802 --- /dev/null +++ b/database/migrations/2019_02_25_062350_create_events_table.php @@ -0,0 +1,37 @@ +<?php + +use Illuminate\Support\Facades\Schema; +use Illuminate\Database\Schema\Blueprint; +use Illuminate\Database\Migrations\Migration; + +class CreateEventsTable extends Migration +{ + /** + * Run the migrations. + * + * @return void + */ + public function up() + { + Schema::create('events', function (Blueprint $table) { + $table->increments('id'); + $table->unsignedInteger('group_id'); + $table->string('time'); + + $table->foreign('group_id') + ->references('id')->on('groups') + ->onDelete('cascade'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('events'); + } +} diff --git a/routes/api.php b/routes/api.php index 596c5379a1dafbba5b3e57ba591ff0ad2ed80884..46c9556da5bf17f612a38993b9c3887ba4eaff40 100644 --- a/routes/api.php +++ b/routes/api.php @@ -57,6 +57,11 @@ Route::delete('/group/{groupId}/member/{userId}', 'GroupsMemberController@delete //Get History Group Route::get('/group/{groupId}/history', 'GroupHistoryController@getHistory'); //Bisa ambil seluruh member dari suatu group +//Event +Route::post('/group/events', 'EventsController@store'); +Route::get('/group/{groupId}/events', 'EventsController@show'); +Route::delete('/group/{groupId}/events', 'EventsController@destroy'); + Route::post('/user/{userId}/task/{taskId}/comment', 'CommentController@createCommentInTaskId'); Route::get('/task/{taskId}/comment', 'CommentController@getCommentsFromTaskId');