Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions apps/backend/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,4 @@
/vendor
Homestead.json
Homestead.yaml
Thumbs.db
composer.lock
Thumbs.db
39 changes: 39 additions & 0 deletions apps/backend/app/Http/Controllers/AiRatingController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?php

namespace App\Http\Controllers;

use App\Models\AiRating;
use App\Http\Requests\AiRating\StoreAiRatingRequest;
use App\Http\Requests\AiRating\UpdateAiRatingRequest;

class AiRatingController extends Controller
{
public function index()
{
return AiRating::all();
}

public function show(string $id)
{
return AiRating::findOrFail($id);
}

public function store(StoreAiRatingRequest $request)
{
$item = AiRating::create($request->validated());
return response()->json($item, 201);
}

public function update(UpdateAiRatingRequest $request, string $id)
{
$item = AiRating::findOrFail($id);
$item->update($request->validated());
return response()->json($item, 200);
}

public function delete(string $id)
{
AiRating::findOrFail($id)->delete();
return response()->json(null, 204);
}
}
36 changes: 36 additions & 0 deletions apps/backend/app/Http/Controllers/AppController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Project;
use App\Models\User;


class AppController extends Controller
{

public function getProject(Project $project)
{
if (!$project->isOwnedByUser()) {
return response()->json(['message' => 'Forbidden'], 403);
}

$project->load([
'chapters.sections' => function ($query) {
$query->with([
'children.textBlocks',
'children.tables',
'children.images',
'children.children',
'textBlocks',
'tables',
'images',
]);
},
]);


return response()->json($project);
}
}
30 changes: 24 additions & 6 deletions apps/backend/app/Http/Controllers/AuthController.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,16 @@

class AuthController extends Controller
{
private function getRole()
{
$user = Auth::user();
if (!$user) {
return response()->json(['error' => 'User not found'], 404);
}

$role = $user->getRoleNames();
return response()->json(['role' => $role]);
}
public function register(Request $request)
{
$request->validate([
Expand All @@ -33,18 +43,21 @@ public function register(Request $request)
return response()->json(['error' => 'Could not create token'], 500);
}

return response()->json([
'token' => $token,
'user' => $user,
], 201);
return response()->json(
[
'token' => $token,
'user' => $user,
],
201,
);
}

public function login(Request $request)
{
$credentials = $request->only('email', 'password');

try {
if (!$token = JWTAuth::attempt($credentials)) {
if (!($token = JWTAuth::attempt($credentials))) {
return response()->json(['error' => 'Invalid credentials'], 401);
}
} catch (JWTException $e) {
Expand Down Expand Up @@ -75,7 +88,12 @@ public function getUser()
if (!$user) {
return response()->json(['error' => 'User not found'], 404);
}
return response()->json($user);
$role = $user->getRoleNames();

return response()->json([
'user' => $user,
'role' => $role
]);
} catch (JWTException $e) {
return response()->json(['error' => 'Failed to fetch user profile'], 500);
}
Expand Down
39 changes: 39 additions & 0 deletions apps/backend/app/Http/Controllers/ChapterController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?php

namespace App\Http\Controllers;

use App\Models\Chapter;
use App\Http\Requests\Chapter\StoreChapterRequest;
use App\Http\Requests\Chapter\UpdateChapterRequest;

class ChapterController extends Controller
{
public function index()
{
return Chapter::all();
}

public function show(string $id)
{
return Chapter::findOrFail($id);
}

public function store(StoreChapterRequest $request)
{
$item = Chapter::create($request->validated());
return response()->json($item, 201);
}

public function update(UpdateChapterRequest $request, string $id)
{
$item = Chapter::findOrFail($id);
$item->update($request->validated());
return response()->json($item, 200);
}

public function delete(string $id)
{
Chapter::findOrFail($id)->delete();
return response()->json(null, 204);
}
}
39 changes: 39 additions & 0 deletions apps/backend/app/Http/Controllers/CriterionController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?php

namespace App\Http\Controllers;

use App\Models\Criterion;
use App\Http\Requests\Criterion\StoreCriterionRequest;
use App\Http\Requests\Criterion\UpdateCriterionRequest;

class CriterionController extends Controller
{
public function index()
{
return Criterion::all();
}

public function show(string $id)
{
return Criterion::findOrFail($id);
}

public function store(StoreCriterionRequest $request)
{
$item = Criterion::create($request->validated());
return response()->json($item, 201);
}

public function update(UpdateCriterionRequest $request, string $id)
{
$item = Criterion::findOrFail($id);
$item->update($request->validated());
return response()->json($item, 200);
}

public function delete(string $id)
{
Criterion::findOrFail($id)->delete();
return response()->json(null, 204);
}
}
39 changes: 39 additions & 0 deletions apps/backend/app/Http/Controllers/GlossaryController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?php

namespace App\Http\Controllers;

use App\Models\Glossary;
use App\Http\Requests\Glossary\StoreGlossaryRequest;
use App\Http\Requests\Glossary\UpdateGlossaryRequest;

class GlossaryController extends Controller
{
public function index()
{
return Glossary::all();
}

public function show(string $id)
{
return Glossary::findOrFail($id);
}

public function store(StoreGlossaryRequest $request)
{
$item = Glossary::create($request->validated());
return response()->json($item, 201);
}

public function update(UpdateGlossaryRequest $request, string $id)
{
$item = Glossary::findOrFail($id);
$item->update($request->validated());
return response()->json($item, 200);
}

public function delete(string $id)
{
Glossary::findOrFail($id)->delete();
return response()->json(null, 204);
}
}
39 changes: 39 additions & 0 deletions apps/backend/app/Http/Controllers/ImageController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?php

namespace App\Http\Controllers;

use App\Models\Image;
use App\Http\Requests\Image\StoreImageRequest;
use App\Http\Requests\Image\UpdateImageRequest;

class ImageController extends Controller
{
public function index()
{
return Image::all();
}

public function show(string $id)
{
return Image::findOrFail($id);
}

public function store(StoreImageRequest $request)
{
$item = Image::create($request->validated());
return response()->json($item, 201);
}

public function update(UpdateImageRequest $request, string $id)
{
$item = Image::findOrFail($id);
$item->update($request->validated());
return response()->json($item, 200);
}

public function delete(string $id)
{
Image::findOrFail($id)->delete();
return response()->json(null, 204);
}
}
39 changes: 39 additions & 0 deletions apps/backend/app/Http/Controllers/PermissionController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?php

namespace App\Http\Controllers;

use App\Models\Permission;
use App\Http\Requests\Permission\StorePermissionRequest;
use App\Http\Requests\Permission\UpdatePermissionRequest;

class PermissionController extends Controller
{
public function index()
{
return Permission::all();
}

public function show(string $id)
{
return Permission::findOrFail($id);
}

public function store(StorePermissionRequest $request)
{
$item = Permission::create($request->validated());
return response()->json($item, 201);
}

public function update(UpdatePermissionRequest $request, string $id)
{
$item = Permission::findOrFail($id);
$item->update($request->validated());
return response()->json($item, 200);
}

public function delete(string $id)
{
Permission::findOrFail($id)->delete();
return response()->json(null, 204);
}
}
41 changes: 41 additions & 0 deletions apps/backend/app/Http/Controllers/ProjectController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Project;
use App\Models\Chapter;
use App\Http\Requests\Project\StoreProjectRequest;
use App\Http\Requests\Project\UpdateProjectRequest;

class ProjectController extends Controller
{
public function index()
{
return Project::all();
}

public function show(string $id)
{
return Project::findOrFail($id);
}

public function store(StoreProjectRequest $request)
{
$project = Project::create($request->validated());
return response()->json($project, 201);
}

public function update(UpdateProjectRequest $request, string $id)
{
$project = Project::findOrFail($id);
$project->update($request->validated());
return response()->json($project, 200);
}

public function delete(string $id)
{
Project::findOrFail($id)->delete();
return response()->json(null, 204);
}
}
Loading
Loading