diff --git a/app/Http/Controllers/Api/V1/MicroSoftTeamController.php b/app/Http/Controllers/Api/V1/MicroSoftTeamController.php index 2fc177faa..071dadfdc 100644 --- a/app/Http/Controllers/Api/V1/MicroSoftTeamController.php +++ b/app/Http/Controllers/Api/V1/MicroSoftTeamController.php @@ -15,6 +15,7 @@ use Illuminate\Support\Facades\Http; use App\Http\Requests\V1\MSTeamCreateClassRequest; use App\Http\Requests\V1\MSTeamCreateAssignmentRequest; +use App\Http\Requests\V1\MSSaveAccessTokenRequest; use App\Models\Playlist; use App\Models\Project; use App\Models\Activity; @@ -107,6 +108,51 @@ public function getAccessToken(Request $request) } } + + /** + * Save Access Token + * + * Save GraphAPI access token in the database. + * + * @bodyParam access_token string required The stringified of the GraphAPI access token JSON object + * + * @response { + * "message": "Access token has been saved successfully." + * } + * + * @response 500 { + * "errors": [ + * "Validation error: Access token is required" + * ] + * } + * + * @response 500 { + * "errors": [ + * "Failed to save the token." + * ] + * } + * + * @param MSSaveAccessTokenRequest $accessTokenRequest + * @return Response + */ + public function saveAccessToken(MSSaveAccessTokenRequest $accessTokenRequest) + { + $data = $accessTokenRequest->validated(); + $authUser = auth()->user(); + $isUpdated = $this->userRepository->update([ + 'msteam_access_token' => $data['access_token'] + ], $authUser->id); + + if ($isUpdated) { + return response([ + 'message' => 'Access token has been saved successfully.', + ], 200); + } + + return response([ + 'errors' => ['Failed to save the token.'], + ], 500); + } /** * Get List of Classes diff --git a/app/Http/Requests/V1/MSSaveAccessTokenRequest.php b/app/Http/Requests/V1/MSSaveAccessTokenRequest.php new file mode 100644 index 000000000..ba2048797 --- /dev/null +++ b/app/Http/Requests/V1/MSSaveAccessTokenRequest.php @@ -0,0 +1,30 @@ + 'required' + ]; + } +} diff --git a/routes/api.php b/routes/api.php index eb592373b..cd53e8b5a 100644 --- a/routes/api.php +++ b/routes/api.php @@ -325,6 +325,7 @@ // Microsoft Team Share Route::group(['prefix' => 'microsoft-team'], function () { + Route::post('save-access-token', 'MicroSoftTeamController@saveAccessToken'); Route::get('classes', 'MicroSoftTeamController@getClasses'); Route::post('classes', 'MicroSoftTeamController@createMsTeamClass'); Route::post('classes/assignments', 'MicroSoftTeamController@createMsTeamAssignment');