1
0
mirror of https://github.com/robonen/education-project.git synced 2026-03-20 02:44:31 +00:00

исправил конфликты после обновления ветки

This commit is contained in:
ashen-1-dev
2020-12-16 20:57:35 +07:00
24 changed files with 427 additions and 168 deletions

View File

@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Http\Requests\Auth\LoginRequest;
use Carbon\Carbon;
class LoginController extends Controller
{
@@ -11,14 +12,13 @@ class LoginController extends Controller
{
$credentials = $request->only('login', 'password');
if (auth()->attempt($credentials))
if (!auth()->attempt($credentials))
return response()->json('You cannot sign with those credentials!', 401);
$token = auth()->user()->makeToken($request->get('remember_me'));
$token = auth()->user()->createToken(config('app.name'));
$token->token->expires_at = (bool)$request->get('remember_me') ? Carbon::now()->addMonth() : Carbon::now()->addDay();
$token->token->save();
return response()->json([
'token_type' => 'Bearer',
'token' => $token->accessToken,
], 200);
return response()->json(['access_token' => $token->accessToken], 200);
}
}

View File

@@ -9,8 +9,8 @@ class LogoutController extends Controller
{
public function __invoke(Request $request)
{
$request->user()->token()->revoke();
auth()->user()->token()->revoke();
return response()->json('ok', 200);
return response()->json(['message' => 'You are logged out'], 200);
}
}

View File

@@ -5,21 +5,19 @@ 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
{
public function __invoke(RegisterRequest $request)
{
$role = Role::where('name', $request->get('role'));
$role = Role::where('name', $request->get('role'))->get();
if ($role->isEmpty())
return response()->json('Role not found', 404);
return response()->json(['message'=>'Role not found'], 404);
$user = User::create(array_merge(
$request->only('login', 'class_id'),
@@ -29,29 +27,35 @@ class RegisterController extends Controller
]
));
$user_id = [
'user_id' => $user->id,
];
switch($request->get('role'))
{
case 'headteacher':
HeadTeacher::create($user_id);
$user->headteacher()->create();
break;
case 'teacher':
Teacher::create($user_id);
$user->teacher()->create();
break;
case 'student':
Student::create($user_id);
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':
Parentt::create($user_id);
$user->parent()->create();
break;
}
return response()->json('ok', 200);
return response()->json(null, 201);
}
}

View File

@@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers;
use App\Http\Requests\ChatLinkRequest;
use App\Models\ChatLink;
use Illuminate\Database\QueryException;
class ChatLinkController extends Controller
{
//Получение ссылок для класса или для их создателя
public function index()
{
switch(auth()->user()->role->name)
{
case 'student':
$links = ChatLink::all()->where('class_id', auth()->user()->class_id);
break;
case 'teacher':
case 'headteacher':
$links = auth()->user()->chatLinks;
break;
case 'parent':
$links = [];
break;
}
return response()->json($links, 200);
}
//Создание ссылки
public function store(ChatLinkRequest $request)
{
try {
$link = auth()->user()->create($request->all());
} catch (QueryException $e) {
return response()->json(['message'=>'Class not found'], 404);
}
return response()->json($link, 201);
}
//Обновление ссылки
public function update(ChatLink $link, ChatLinkRequest $request)
{
try {
$link->update($request->all());
} catch (QueryException $e) {
return response()->json(['message'=>'Class not found'], 404);
}
return response()->json($link, 200);
}
//Удаление ссылки
public function destroy(ChatLink $link)
{
$link->delete();
return response()->json(null, 204);
}
}

View File

@@ -45,9 +45,8 @@ class TimetableController extends Controller
'class' => $class,
]);
}
$dateTimetables = [];
// if (!$filterTimetables->isEmpty()) {
//if (!$filterTimetables->isEmpty()) {
for ($i = 0; $i < 6; $i++) {
$date = Carbon::parse($request->input('date'))
->startOfWeek()
@@ -55,7 +54,8 @@ class TimetableController extends Controller
->format('Y-m-d');
array_push($dateTimetables, [$date => $filterTimetables->where('date', $date)->values()]);
}
// }
//}
return response()->json($dateTimetables, 200);
}

View File

@@ -0,0 +1,35 @@
<?php
namespace App\Http\Controllers\Users;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
public function getUser()
{
switch(auth()->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);
}
}

View File

@@ -14,8 +14,8 @@ class Authenticate extends Middleware
*/
protected function redirectTo($request)
{
if (! $request->expectsJson()) {
return route('login');
}
//if (! $request->expectsJson()) {
// return route('login');
//}
}
}

View File

@@ -22,7 +22,7 @@ class Role
$roles = explode($this->delimetr, $roles);
if (!auth()->user()->hasRole($roles)) {
return response()->json('',404);
return response()->json(null,404);
}
return $next($request);
}

View File

@@ -16,7 +16,8 @@ class RegisterRequest extends UserRequest
{
return [
'role' => 'required|string',
'class_id' => 'required|integer|gt:0',
'class_id' => 'integer|gt:0',
'login' => 'required|unique:users'
];
}
}

View File

@@ -18,7 +18,6 @@ abstract class UserRequest extends ApiFormRequest
public function rules()
{
return array_merge([
'login' => 'required|string',
'password' => 'required|string|min:6',
], $this->specific());
}

View File

@@ -0,0 +1,22 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ChatLinkRequest extends ApiFormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required',
'link' => 'required',
'class_id' => 'required|integer|gt:0',
];
}
}