From e19ab81ddd601a076e4860f6399f7c7b8c41fd51 Mon Sep 17 00:00:00 2001 From: nikden13 Date: Wed, 16 Dec 2020 15:25:42 +0700 Subject: [PATCH] get user --- .../Controllers/Auth/RegisterController.php | 18 ++++++--- app/Http/Controllers/Users/UserController.php | 38 +++++++++++++++++++ app/Models/HeadTeacher.php | 4 ++ app/Models/Parentt.php | 4 ++ app/Models/Student.php | 4 ++ app/Models/Teacher.php | 4 ++ routes/api.php | 2 + 7 files changed, 69 insertions(+), 5 deletions(-) create mode 100644 app/Http/Controllers/Users/UserController.php diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index 25b1da2..c5b40f8 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -5,12 +5,10 @@ namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Http\Requests\Auth\RegisterRequest; -use App\Models\HeadTeacher; -use App\Models\Parentt; use App\Models\Role; -use App\Models\Student; -use App\Models\Teacher; +use App\Models\SchoolClass; use App\Models\User; +use Illuminate\Database\QueryException; class RegisterController extends Controller { @@ -40,7 +38,17 @@ class RegisterController extends Controller break; case 'student': - $user->student()->create(); + try { + $user->student()->create(['class_id'=>$request->input('class_id')]); + $class = SchoolClass::find($request->input('class_id')); + if ($class) { + $class->count_students++;; + $class->save(); + } + } catch (QueryException $e) { + $user->delete(); + return response()->json(['message'=>'Class not found'],404); + } break; case 'parent': diff --git a/app/Http/Controllers/Users/UserController.php b/app/Http/Controllers/Users/UserController.php new file mode 100644 index 0000000..6cc23a9 --- /dev/null +++ b/app/Http/Controllers/Users/UserController.php @@ -0,0 +1,38 @@ +user()->role->name) + { + case 'student': + $user = auth()->user()->student; + break; + + case 'teacher': + $user = auth()->user()->teacher; + break; + + case 'headteacher': + $user = auth()->user()->headteacher; + break; + + case 'parent': + $user = auth()->user()->parent; + break; + } + return response()->json($user); + } + +} diff --git a/app/Models/HeadTeacher.php b/app/Models/HeadTeacher.php index 8f05d99..9c8ecde 100644 --- a/app/Models/HeadTeacher.php +++ b/app/Models/HeadTeacher.php @@ -14,6 +14,10 @@ class HeadTeacher extends Model 'updated_at', ]; + protected $hidden = [ + 'user_id', + ]; + public function user() { return $this->belongsTo(User::class); diff --git a/app/Models/Parentt.php b/app/Models/Parentt.php index 5645a09..db91b92 100644 --- a/app/Models/Parentt.php +++ b/app/Models/Parentt.php @@ -15,6 +15,10 @@ class Parentt extends Model 'updated_at', ]; + protected $hidden = [ + 'user_id', + ]; + public function user() { return $this->belongsTo(User::class); diff --git a/app/Models/Student.php b/app/Models/Student.php index 3eb0573..5105002 100644 --- a/app/Models/Student.php +++ b/app/Models/Student.php @@ -15,6 +15,10 @@ class Student extends Model 'updated_at', ]; + protected $hidden = [ + 'user_id', + ]; + public function schoolClass() { return $this->belongsTo(SchoolClass::class, 'class_id'); diff --git a/app/Models/Teacher.php b/app/Models/Teacher.php index 3b3c445..9b008e1 100644 --- a/app/Models/Teacher.php +++ b/app/Models/Teacher.php @@ -15,6 +15,10 @@ class Teacher extends Model 'updated_at', ]; + protected $hidden = [ + 'user_id', + ]; + public function schoolClass() { return $this->hasOne(SchoolClass::class, 'classroom_teacher'); diff --git a/routes/api.php b/routes/api.php index 0bf961c..c28dfbd 100644 --- a/routes/api.php +++ b/routes/api.php @@ -9,6 +9,8 @@ Route::group(['prefix' => 'auth'], function () { Route::post('logout', 'Auth\LogoutController')->middleware('auth:api'); }); +Route::get('users', 'Users\UserController@getUser')->middleware('auth:api'); + Route::apiResource('chat/links', 'ChatLinkController')->except(['show'])->middleware('auth:api'); // ссылки чата Route::apiResource('headteachers', 'Users\HeadTeacherController');