mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-18 00:02:15 +00:00
routes response refactoring
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
APP_NAME=Laravel
|
||||
APP_ENV=local
|
||||
APP_KEY=base64:x5KqtYx90b6qdRZ0tzl1LunUYNlu6uXZATY3oKTMn1M=
|
||||
APP_KEY=base64:qBL7kIM+I1U3jdkTiAelfVgVOLT3hfu0iOr8bUz2k1I=
|
||||
APP_DEBUG=true
|
||||
APP_URL=http://localhost
|
||||
APP_DEMO=false
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
"/chunks/demo.js": "/chunks/demo.js?id=355303e4230cb5ae",
|
||||
"/chunks/successfully-email-verified.js": "/chunks/successfully-email-verified.js?id=c26cb144101e7c79",
|
||||
"/chunks/successfully-email-send.js": "/chunks/successfully-email-send.js?id=170d814982e1c475",
|
||||
"/chunks/sign-in.js": "/chunks/sign-in.js?id=1631a0f4a4ad25c2",
|
||||
"/chunks/sign-in.js": "/chunks/sign-in.js?id=a837482b53d989dc",
|
||||
"/chunks/sign-up.js": "/chunks/sign-up.js?id=2af6073efe54c560",
|
||||
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=ff8954243e86c1e1",
|
||||
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=2f0401ee2fc148c4",
|
||||
@@ -63,7 +63,7 @@
|
||||
"/chunks/settings-password.js": "/chunks/settings-password.js?id=d00bf503d8126dc4",
|
||||
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=ecfee7f7e98204f8",
|
||||
"/chunks/billing.js": "/chunks/billing.js?id=dd217d680baafb84",
|
||||
"/chunks/platform.js": "/chunks/platform.js?id=a31d808015c4e7ea",
|
||||
"/chunks/platform.js": "/chunks/platform.js?id=90d43ec56b62c721",
|
||||
"/chunks/files.js": "/chunks/files.js?id=5f29f35c280e680b",
|
||||
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=6f43aea38e0927bc",
|
||||
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=6e819ffe88a0fd1d",
|
||||
|
||||
@@ -277,7 +277,7 @@ export default {
|
||||
axios
|
||||
.get(`/api/share/${this.shareOptions.token}/qr`)
|
||||
.then((response) => {
|
||||
this.qrCode = response.data
|
||||
this.qrCode = response.data.data.svg
|
||||
})
|
||||
.catch(() => this.$isSomethingWrong())
|
||||
},
|
||||
|
||||
4
resources/js/store/modules/userAuth.js
vendored
4
resources/js/store/modules/userAuth.js
vendored
@@ -61,8 +61,8 @@ const actions = {
|
||||
axios
|
||||
.get(`/api/socialite/${provider}/redirect`)
|
||||
.then((response) => {
|
||||
if (response.data.url) {
|
||||
window.location.href = response.data.url
|
||||
if (response.data.data.url) {
|
||||
window.location.href = response.data.data.url
|
||||
}
|
||||
})
|
||||
.catch(() => this.$isSomethingWrong())
|
||||
|
||||
@@ -320,7 +320,7 @@ export default {
|
||||
.catch((error) => {
|
||||
if (error.response.status == 404) {
|
||||
this.$refs.log_in.setErrors({
|
||||
'E-Mail': [error.response.data],
|
||||
'E-Mail': [error.response.data.message],
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ namespace App\Socialite\Controllers;
|
||||
use App\Users\Models\User;
|
||||
use App\Users\DTO\CreateUserData;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Laravel\Socialite\Facades\Socialite;
|
||||
use App\Users\Actions\CreateNewUserAction;
|
||||
use Illuminate\Contracts\Auth\StatefulGuard;
|
||||
@@ -21,8 +23,9 @@ class SocialiteCallbackController extends Controller
|
||||
/**
|
||||
* @throws MeteredBillingPlanDoesntExist
|
||||
*/
|
||||
public function __invoke($provider)
|
||||
{
|
||||
public function __invoke(
|
||||
$provider
|
||||
): JsonResponse|RedirectResponse {
|
||||
$isAllowedRegistration = intval(get_settings('registration'));
|
||||
|
||||
// Get socialite user
|
||||
@@ -52,7 +55,7 @@ class SocialiteCallbackController extends Controller
|
||||
|
||||
// TODO: redirect to the error page
|
||||
if ($plan->doesntExist()) {
|
||||
return response([
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'User registrations are temporarily disabled',
|
||||
], 409);
|
||||
@@ -61,7 +64,7 @@ class SocialiteCallbackController extends Controller
|
||||
|
||||
// Check if account registration is enabled
|
||||
if (! $isAllowedRegistration) {
|
||||
return response([
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'User registration is not allowed',
|
||||
], 401);
|
||||
|
||||
@@ -1,17 +1,26 @@
|
||||
<?php
|
||||
namespace App\Socialite\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Laravel\Socialite\Facades\Socialite;
|
||||
|
||||
class SocialiteRedirectController extends Controller
|
||||
{
|
||||
public function __invoke($provider)
|
||||
{
|
||||
$url = Socialite::driver($provider)->stateless()->redirect()->getTargetUrl();
|
||||
public function __invoke(
|
||||
string $provider
|
||||
): JsonResponse {
|
||||
$url = Socialite::driver($provider)
|
||||
->stateless()
|
||||
->redirect()
|
||||
->getTargetUrl();
|
||||
|
||||
return response()->json([
|
||||
'url' => $url,
|
||||
'type' => 'success',
|
||||
'message' => 'The user was successfully verified',
|
||||
'data' => [
|
||||
'url' => $url,
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<?php
|
||||
namespace App\Users\Controllers\Account;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Users\Resources\UserResource;
|
||||
|
||||
class AccountDetailsController extends Controller
|
||||
@@ -10,10 +10,8 @@ class AccountDetailsController extends Controller
|
||||
/**
|
||||
* Get all user data for frontend
|
||||
*/
|
||||
public function __invoke(): UserResource
|
||||
public function __invoke(): JsonResponse
|
||||
{
|
||||
return new UserResource(
|
||||
Auth::user()
|
||||
);
|
||||
return response()->json(new UserResource(auth()->user()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
<?php
|
||||
namespace App\Users\Controllers\Account;
|
||||
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Users\Resources\UserStorageResource;
|
||||
|
||||
class StorageCapacityController
|
||||
{
|
||||
public function __invoke(): UserStorageResource
|
||||
public function __invoke(): JsonResponse
|
||||
{
|
||||
return new UserStorageResource(
|
||||
Auth::user()
|
||||
return response()->json(
|
||||
new UserStorageResource(auth()->user())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,9 +14,9 @@ class AccountAccessTokenController extends Controller
|
||||
/**
|
||||
* Get all user tokens
|
||||
*/
|
||||
public function index(): Response
|
||||
public function index(): JsonResponse
|
||||
{
|
||||
return response(
|
||||
return response()->json(
|
||||
Auth::user()->tokens()->get()
|
||||
);
|
||||
}
|
||||
@@ -24,8 +24,9 @@ class AccountAccessTokenController extends Controller
|
||||
/**
|
||||
* Create user tokens
|
||||
*/
|
||||
public function store(CreateAccessTokenRequest $request): JsonResponse
|
||||
{
|
||||
public function store(
|
||||
CreateAccessTokenRequest $request
|
||||
): JsonResponse {
|
||||
if (isDemoAccount()) {
|
||||
return response()->json([
|
||||
'plainTextToken' => Str::random(40),
|
||||
@@ -41,8 +42,9 @@ class AccountAccessTokenController extends Controller
|
||||
/**
|
||||
* Delete user token
|
||||
*/
|
||||
public function destroy(PersonalAccessToken $token): JsonResponse
|
||||
{
|
||||
public function destroy(
|
||||
PersonalAccessToken $token
|
||||
): JsonResponse {
|
||||
$successMessage = [
|
||||
'type' => 'success',
|
||||
'message' => 'The token was successfully deleted.',
|
||||
@@ -61,6 +63,6 @@ class AccountAccessTokenController extends Controller
|
||||
|
||||
$token->delete();
|
||||
|
||||
return response()->json($successMessage, 200);
|
||||
return response()->json($successMessage);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,8 +13,9 @@ class AuthenticateAndReturnBearerTokenController extends Controller
|
||||
/**
|
||||
* @throws ValidationException
|
||||
*/
|
||||
public function __invoke(LoginUserRequest $request): JsonResponse
|
||||
{
|
||||
public function __invoke(
|
||||
LoginUserRequest $request
|
||||
): JsonResponse {
|
||||
// Get user
|
||||
$user = User::where('email', $request->input('email'))
|
||||
->firstOrFail();
|
||||
|
||||
@@ -17,8 +17,9 @@ class RegisterUserController extends Controller
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(RegisterUserRequest $request): JsonResponse
|
||||
{
|
||||
public function __invoke(
|
||||
RegisterUserRequest $request
|
||||
): JsonResponse {
|
||||
// Check if account registration is enabled
|
||||
if (! intval(get_settings('registration'))) {
|
||||
return response()->json([
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
namespace App\Users\Controllers;
|
||||
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
||||
|
||||
class GetAvatarController
|
||||
{
|
||||
@@ -12,10 +12,10 @@ class GetAvatarController
|
||||
*/
|
||||
public function __invoke(
|
||||
string $basename
|
||||
): StreamedResponse | Response {
|
||||
): StreamedResponse {
|
||||
// Check if file exist
|
||||
if (! Storage::exists("/avatars/$basename")) {
|
||||
return response('File not found', 404);
|
||||
throw new ModelNotFoundException();
|
||||
}
|
||||
|
||||
// Return avatar
|
||||
|
||||
@@ -13,7 +13,7 @@ class GetDashboardDataController extends Controller
|
||||
public function __invoke(): JsonResponse
|
||||
{
|
||||
// Get bandwidth data
|
||||
list($upload, $download, $uploadTotal, $downloadTotal, $storageUsage) = $this->getDiskData();
|
||||
[$upload, $download, $uploadTotal, $downloadTotal, $storageUsage] = $this->getDiskData();
|
||||
|
||||
// Get total earnings from transactions
|
||||
$totalEarnings = DB::table('transactions')
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
<?php
|
||||
namespace Domain\Admin\Controllers\Dashboard;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use VueFileManager\Subscription\Domain\Transactions\Models\Transaction;
|
||||
use VueFileManager\Subscription\Domain\Transactions\Resources\TransactionCollection;
|
||||
|
||||
class GetLatestTransactionsController extends Controller
|
||||
{
|
||||
public function __invoke(): TransactionCollection
|
||||
public function __invoke(): JsonResponse
|
||||
{
|
||||
$transactions = Transaction::sortable([
|
||||
'created_at' => 'desc',
|
||||
@@ -15,6 +16,6 @@ class GetLatestTransactionsController extends Controller
|
||||
->take(5)
|
||||
->get();
|
||||
|
||||
return new TransactionCollection($transactions);
|
||||
return response()->json(new TransactionCollection($transactions));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,13 @@
|
||||
namespace Domain\Admin\Controllers\Dashboard;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Users\Resources\UsersCollection;
|
||||
|
||||
class GetNewbiesController extends Controller
|
||||
{
|
||||
public function __invoke(): UsersCollection
|
||||
public function __invoke(): JsonResponse
|
||||
{
|
||||
$users = User::sortable([
|
||||
'created_at' => 'desc',
|
||||
@@ -15,6 +16,6 @@ class GetNewbiesController extends Controller
|
||||
->take(5)
|
||||
->get();
|
||||
|
||||
return new UsersCollection($users);
|
||||
return response()->json(new UsersCollection($users));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
namespace Domain\Admin\Controllers\Users;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Users\Resources\UserResource;
|
||||
use Domain\Admin\Requests\ChangeRoleRequest;
|
||||
@@ -11,15 +12,15 @@ class ChangeUserRoleController extends Controller
|
||||
public function __invoke(
|
||||
ChangeRoleRequest $request,
|
||||
User $user,
|
||||
): UserResource {
|
||||
): JsonResponse {
|
||||
if (isDemoAccount()) {
|
||||
return new UserResource($user);
|
||||
return response()->json(new UserResource($user));
|
||||
}
|
||||
|
||||
// Update user role
|
||||
$user->role = $request->input('attributes.role');
|
||||
$user->update();
|
||||
|
||||
return new UserResource($user);
|
||||
return response()->json(new UserResource($user));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
namespace Domain\Admin\Controllers\Users;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Users\Resources\UserStorageResource;
|
||||
use Domain\Admin\Requests\ChangeStorageCapacityRequest;
|
||||
@@ -14,10 +15,10 @@ class ChangeUserStorageCapacityController extends Controller
|
||||
public function __invoke(
|
||||
ChangeStorageCapacityRequest $request,
|
||||
User $user,
|
||||
): UserStorageResource {
|
||||
): JsonResponse {
|
||||
// Abort in demo mode
|
||||
if (isDemoAccount()) {
|
||||
return new UserStorageResource($user);
|
||||
return response()->json(new UserStorageResource($user));
|
||||
}
|
||||
|
||||
$user
|
||||
@@ -26,6 +27,6 @@ class ChangeUserStorageCapacityController extends Controller
|
||||
$request->input('attributes')
|
||||
);
|
||||
|
||||
return new UserStorageResource($user);
|
||||
return response()->json(new UserStorageResource($user));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
namespace Domain\Admin\Controllers\Users;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Domain\Admin\Requests\DeleteUserRequest;
|
||||
@@ -17,21 +17,39 @@ class DeleteUserController extends Controller
|
||||
DeleteUserRequest $request,
|
||||
User $user,
|
||||
DeleteUserDataAction $deleteUserData,
|
||||
): Response {
|
||||
): JsonResponse {
|
||||
if (is_demo()) {
|
||||
return response('Done.', 204);
|
||||
return response()->json([
|
||||
'type' => 'success',
|
||||
'message' => 'The user was successfully deleted',
|
||||
]);
|
||||
}
|
||||
|
||||
if ($user->subscription && $user->subscription->active()) {
|
||||
abort(202, "You can\'t delete this account since user has active subscription.");
|
||||
abort(
|
||||
response()->json([
|
||||
'type' => 'error',
|
||||
'message' => "You can\'t delete this account since user has active subscription.",
|
||||
], 202)
|
||||
);
|
||||
}
|
||||
|
||||
if ($user->id === Auth::id()) {
|
||||
abort(406, "You can\'t delete your account");
|
||||
abort(
|
||||
response()->json([
|
||||
'type' => 'error',
|
||||
'message' => "You can\'t delete your account",
|
||||
], 406)
|
||||
);
|
||||
}
|
||||
|
||||
if (trim($user->settings->name) !== $request->input('name')) {
|
||||
abort(403, 'The name you typed is wrong!');
|
||||
abort(
|
||||
response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'The name you typed is wrong!',
|
||||
], 403)
|
||||
);
|
||||
}
|
||||
|
||||
$user->delete();
|
||||
@@ -39,6 +57,9 @@ class DeleteUserController extends Controller
|
||||
// Delete all user data
|
||||
($deleteUserData)($user);
|
||||
|
||||
return response('Done.', 204);
|
||||
return response()->json([
|
||||
'type' => 'success',
|
||||
'message' => 'The user was successfully deleted',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
namespace Domain\Admin\Controllers\Users;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Password;
|
||||
|
||||
@@ -11,10 +11,15 @@ class ResetUserPasswordController extends Controller
|
||||
/**
|
||||
* Send user password reset link
|
||||
*/
|
||||
public function __invoke(User $user): Response
|
||||
public function __invoke(User $user): JsonResponse
|
||||
{
|
||||
$message = [
|
||||
'type' => 'success',
|
||||
'message' => 'The password reset link was send succesfully',
|
||||
];
|
||||
|
||||
if (is_demo()) {
|
||||
return response('Done.', 204);
|
||||
return response()->json($message);
|
||||
}
|
||||
|
||||
// Get password token
|
||||
@@ -24,6 +29,6 @@ class ResetUserPasswordController extends Controller
|
||||
// Send user email
|
||||
$user->sendPasswordResetNotification($token);
|
||||
|
||||
return response('Done.', 204);
|
||||
return response()->json($message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
namespace Domain\Admin\Controllers\Users;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Users\Resources\UserStorageResource;
|
||||
|
||||
@@ -10,8 +11,8 @@ class ShowUserStorageCapacityController extends Controller
|
||||
/**
|
||||
* Get user storage details
|
||||
*/
|
||||
public function __invoke(User $user): UserStorageResource
|
||||
public function __invoke(User $user): JsonResponse
|
||||
{
|
||||
return new UserStorageResource($user);
|
||||
return response()->json(new UserStorageResource($user));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
namespace Domain\Admin\Controllers\Users;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Http\Response;
|
||||
use App\Users\DTO\CreateUserData;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Users\Resources\UserResource;
|
||||
use App\Users\Resources\UsersCollection;
|
||||
@@ -21,26 +21,26 @@ class UserController extends Controller
|
||||
/**
|
||||
* Get all users
|
||||
*/
|
||||
public function index(): UsersCollection
|
||||
public function index(): JsonResponse
|
||||
{
|
||||
$users = User::sortable(['created_at', 'DESC'])
|
||||
->paginate(15);
|
||||
|
||||
return new UsersCollection($users);
|
||||
return response()->json(new UsersCollection($users));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get user details
|
||||
*/
|
||||
public function show(User $user): UserResource
|
||||
public function show(User $user): JsonResponse
|
||||
{
|
||||
return new UserResource($user);
|
||||
return response()->json(new UserResource($user));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create new user by admin
|
||||
*/
|
||||
public function store(CreateUserByAdmin $request): Response
|
||||
public function store(CreateUserByAdmin $request): JsonResponse
|
||||
{
|
||||
// Map user data
|
||||
$data = CreateUserData::fromArray([
|
||||
@@ -55,7 +55,7 @@ class UserController extends Controller
|
||||
try {
|
||||
$user = ($this->createNewUser)($data);
|
||||
} catch (MeteredBillingPlanDoesntExist $e) {
|
||||
return response([
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'User registrations are temporarily disabled',
|
||||
], 409);
|
||||
@@ -67,6 +67,6 @@ class UserController extends Controller
|
||||
|
||||
$user->save();
|
||||
|
||||
return response(new UserResource($user), 201);
|
||||
return response()->json(new UserResource($user), 201);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ use Illuminate\Support\Arr;
|
||||
use Domain\Files\Models\File;
|
||||
use App\Users\Models\UserSetting;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Domain\Items\Requests\SearchRequest;
|
||||
use Domain\Files\Resources\FilesCollection;
|
||||
@@ -17,7 +18,7 @@ class SpotlightSearchController
|
||||
{
|
||||
public function __invoke(
|
||||
SearchRequest $request
|
||||
) {
|
||||
): JsonResponse {
|
||||
// Prepare queries
|
||||
$query = remove_accents(
|
||||
$request->input('query')
|
||||
@@ -32,11 +33,12 @@ class SpotlightSearchController
|
||||
return $this->searchFiles($query);
|
||||
}
|
||||
|
||||
private function searchUsers($query)
|
||||
{
|
||||
private function searchUsers(
|
||||
string $query
|
||||
): JsonResponse {
|
||||
// Prevent to show non admin user searching
|
||||
if (Auth::user()->role !== 'admin') {
|
||||
abort(401);
|
||||
abort(response()->json(accessDeniedError()), 403);
|
||||
}
|
||||
|
||||
// Get user ids
|
||||
@@ -44,13 +46,16 @@ class SpotlightSearchController
|
||||
->get()
|
||||
->pluck('user_id');
|
||||
|
||||
return new UsersMinimalCollection(
|
||||
$users = new UsersMinimalCollection(
|
||||
User::find($results)
|
||||
);
|
||||
|
||||
return response()->json($users);
|
||||
}
|
||||
|
||||
private function searchFiles(string $query)
|
||||
{
|
||||
private function searchFiles(
|
||||
string $query
|
||||
): JsonResponse {
|
||||
$user_id = Auth::id();
|
||||
|
||||
// Get "shared with me" folders
|
||||
@@ -92,9 +97,9 @@ class SpotlightSearchController
|
||||
->take(3);
|
||||
|
||||
// Collect folders and files to single array
|
||||
return [
|
||||
return response()->json([
|
||||
'folders' => new FolderCollection($folders),
|
||||
'files' => new FilesCollection($files),
|
||||
];
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,11 +6,13 @@ use Illuminate\Http\Response;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Illuminate\Contracts\Filesystem\FileNotFoundException;
|
||||
|
||||
class DownloadFileAction
|
||||
{
|
||||
/**
|
||||
* Call and download file
|
||||
* @throws FileNotFoundException
|
||||
*/
|
||||
public function __invoke(File $file): Response|StreamedResponse|RedirectResponse
|
||||
{
|
||||
@@ -21,7 +23,9 @@ class DownloadFileAction
|
||||
$fileName = getPrettyName($file);
|
||||
|
||||
// Check if file exist
|
||||
abort_if(Storage::missing($filePath), 404, 'The file not found.');
|
||||
if (Storage::missing($filePath)) {
|
||||
throw new FileNotFoundException();
|
||||
}
|
||||
|
||||
// Format response header
|
||||
$header = [
|
||||
|
||||
@@ -2,19 +2,21 @@
|
||||
namespace Domain\Files\Actions;
|
||||
|
||||
use Domain\Files\Models\File;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Illuminate\Contracts\Filesystem\FileNotFoundException;
|
||||
|
||||
class DownloadThumbnailAction
|
||||
{
|
||||
/**
|
||||
* Get image thumbnail for browser
|
||||
*
|
||||
* @throws FileNotFoundException
|
||||
*/
|
||||
public function __invoke(
|
||||
string $filename,
|
||||
File $file
|
||||
): StreamedResponse|Response {
|
||||
): StreamedResponse {
|
||||
// Get file path
|
||||
$filePath = "/files/$file->user_id/$filename";
|
||||
|
||||
@@ -25,7 +27,7 @@ class DownloadThumbnailAction
|
||||
|
||||
// Check if original file exist
|
||||
if (! Storage::exists($substituteFilePath)) {
|
||||
return response('File not found', 404);
|
||||
throw new FileNotFoundException();
|
||||
}
|
||||
|
||||
// Return image thumbnail
|
||||
|
||||
@@ -3,7 +3,7 @@ namespace Domain\Files\Controllers\FileAccess;
|
||||
|
||||
use Gate;
|
||||
use Domain\Files\Models\File;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Domain\Files\Actions\DownloadFileAction;
|
||||
@@ -20,7 +20,7 @@ class GetFileController extends Controller
|
||||
|
||||
public function __invoke(
|
||||
string $filename,
|
||||
): Response|RedirectResponse|StreamedResponse {
|
||||
): JsonResponse|RedirectResponse|StreamedResponse {
|
||||
// Get requested file
|
||||
$file = File::withTrashed()
|
||||
->where('basename', $filename)
|
||||
@@ -28,12 +28,12 @@ class GetFileController extends Controller
|
||||
|
||||
// Check if user can download file
|
||||
if (! $file->user->canDownload()) {
|
||||
return response(userActionNotAllowedError(), 401);
|
||||
return response()->json(userActionNotAllowedError(), 401);
|
||||
}
|
||||
|
||||
// Check if user has privileges to download file
|
||||
if (! Gate::any(['can-edit', 'can-view'], [$file, null])) {
|
||||
return response(accessDeniedError(), 403);
|
||||
return response()->json(accessDeniedError(), 403);
|
||||
}
|
||||
|
||||
// TODO: resolve video buffering
|
||||
|
||||
@@ -4,7 +4,7 @@ namespace Domain\Files\Controllers\FileAccess;
|
||||
use Gate;
|
||||
use Illuminate\Http\Request;
|
||||
use Domain\Files\Models\File;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Files\Actions\DownloadThumbnailAction;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
@@ -17,10 +17,13 @@ class GetThumbnailController extends Controller
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws FileNotFoundException
|
||||
*/
|
||||
public function __invoke(
|
||||
Request $request,
|
||||
string $filename,
|
||||
): FileNotFoundException | StreamedResponse | Response {
|
||||
): FileNotFoundException | StreamedResponse | JsonResponse {
|
||||
// Get requested thumbnail
|
||||
$file = File::withTrashed()
|
||||
->where('basename', substr($filename, 3))
|
||||
@@ -28,7 +31,7 @@ class GetThumbnailController extends Controller
|
||||
|
||||
// Check if user has privileges to download file
|
||||
if (! Gate::any(['can-edit', 'can-view'], [$file, null])) {
|
||||
return response(accessDeniedError(), 403);
|
||||
return response()->json(accessDeniedError(), 403);
|
||||
}
|
||||
|
||||
return ($this->downloadThumbnail)($filename, $file);
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
namespace Domain\Files\Controllers\FileAccess;
|
||||
|
||||
use Domain\Files\Models\File;
|
||||
use Illuminate\Http\Response;
|
||||
use Domain\Sharing\Models\Share;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Domain\Files\Actions\DownloadFileAction;
|
||||
@@ -11,6 +11,7 @@ use Domain\Traffic\Actions\RecordDownloadAction;
|
||||
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Domain\Sharing\Actions\VerifyAccessToItemWithinAction;
|
||||
use Illuminate\Contracts\Filesystem\FileNotFoundException;
|
||||
|
||||
/**
|
||||
* Get file public
|
||||
@@ -25,13 +26,16 @@ class VisitorGetFileController extends Controller
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws FileNotFoundException
|
||||
*/
|
||||
public function __invoke(
|
||||
$filename,
|
||||
Share $shared,
|
||||
): StreamedResponse|RedirectResponse|Response {
|
||||
): StreamedResponse|RedirectResponse|JsonResponse {
|
||||
// Check if user can download file
|
||||
if (! $shared->user->canDownload()) {
|
||||
return response(userActionNotAllowedError(), 401);
|
||||
return response()->json(userActionNotAllowedError(), 401);
|
||||
}
|
||||
|
||||
// Check ability to access protected share files
|
||||
|
||||
@@ -9,6 +9,7 @@ use Domain\Files\Actions\DownloadThumbnailAction;
|
||||
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Domain\Sharing\Actions\VerifyAccessToItemWithinAction;
|
||||
use Illuminate\Contracts\Filesystem\FileNotFoundException;
|
||||
|
||||
/**
|
||||
* Get public image thumbnail
|
||||
@@ -23,6 +24,9 @@ class VisitorGetThumbnailController extends Controller
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws FileNotFoundException
|
||||
*/
|
||||
public function __invoke(
|
||||
$filename,
|
||||
Share $shared,
|
||||
|
||||
@@ -26,8 +26,9 @@ class UploadFileChunksController extends Controller
|
||||
*
|
||||
* @throws FileNotFoundException
|
||||
*/
|
||||
public function __invoke(UploadChunkRequest $request)
|
||||
{
|
||||
public function __invoke(
|
||||
UploadChunkRequest $request
|
||||
) {
|
||||
if (isDemoAccount()) {
|
||||
return ($this->fakeUploadFile)($request);
|
||||
}
|
||||
|
||||
@@ -19,8 +19,9 @@ class UploadFileController extends Controller
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(UploadFileRequest $request): JsonResponse
|
||||
{
|
||||
public function __invoke(
|
||||
UploadFileRequest $request
|
||||
): JsonResponse {
|
||||
if (isDemoAccount()) {
|
||||
return response()->json(($this->fakeUploadFile)($request), 201);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ namespace Domain\Files\Controllers;
|
||||
use Gate;
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Sharing\Models\Share;
|
||||
use Illuminate\Auth\Access\AuthorizationException;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Domain\Files\Resources\FileResource;
|
||||
|
||||
@@ -12,6 +13,9 @@ use Domain\Files\Resources\FileResource;
|
||||
*/
|
||||
class VisitorShowFileController
|
||||
{
|
||||
/**
|
||||
* @throws AuthorizationException
|
||||
*/
|
||||
public function __invoke(
|
||||
Share $shared
|
||||
): JsonResponse {
|
||||
|
||||
@@ -72,7 +72,7 @@ class VisitorUploadFileChunksController extends Controller
|
||||
// Set public access url
|
||||
$file->setSharedPublicUrl($shared->token);
|
||||
|
||||
return response(new FileResource($file), 201);
|
||||
return response()->json(new FileResource($file), 201);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,8 +11,9 @@ class FavouriteController extends Controller
|
||||
/**
|
||||
* Add folder to user favourites
|
||||
*/
|
||||
public function store(AddFolderToFavouritesRequest $request): JsonResponse
|
||||
{
|
||||
public function store(
|
||||
AddFolderToFavouritesRequest $request
|
||||
): JsonResponse {
|
||||
$successResponse = [
|
||||
'type' => 'success',
|
||||
'message' => 'Folder was successfully added into your favourites folders',
|
||||
@@ -37,8 +38,9 @@ class FavouriteController extends Controller
|
||||
/**
|
||||
* Remove folder from user favourites
|
||||
*/
|
||||
public function destroy(string $id): JsonResponse
|
||||
{
|
||||
public function destroy(
|
||||
string $id
|
||||
): JsonResponse {
|
||||
$successResponse = [
|
||||
'type' => 'success',
|
||||
'message' => 'Folder was successfully removed from your favourites folders',
|
||||
|
||||
@@ -2,12 +2,13 @@
|
||||
namespace Domain\Folders\Controllers;
|
||||
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class NavigationTreeController
|
||||
{
|
||||
public function __invoke(): array
|
||||
public function __invoke(): JsonResponse
|
||||
{
|
||||
// Get signed user folders
|
||||
$folders = Folder::with('folders:id,parent_id,name,team_folder')
|
||||
@@ -36,7 +37,7 @@ class NavigationTreeController
|
||||
->sortable()
|
||||
->get(['id', 'parent_id', 'name']);
|
||||
|
||||
return [
|
||||
return response()->json([
|
||||
[
|
||||
'location' => 'files',
|
||||
'name' => __t('menu.files'),
|
||||
@@ -58,6 +59,6 @@ class NavigationTreeController
|
||||
'isMovable' => false,
|
||||
'isOpen' => false,
|
||||
],
|
||||
];
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,8 +16,9 @@ class GetInvoiceController extends Controller
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(Transaction $invoice): View|Factory|Application
|
||||
{
|
||||
public function __invoke(
|
||||
Transaction $invoice
|
||||
): View {
|
||||
// Get app settings
|
||||
$settings = json_decode(
|
||||
Setting::all()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
namespace Domain\Items\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Files\Resources\FileResource;
|
||||
use Domain\Folders\Resources\FolderResource;
|
||||
@@ -27,15 +28,15 @@ class RenameFileOrFolderController extends Controller
|
||||
public function __invoke(
|
||||
RenameItemRequest $request,
|
||||
string $id,
|
||||
): FileResource|FolderResource {
|
||||
): JsonResponse {
|
||||
if (isDemoAccount()) {
|
||||
$item = ($this->fakeRenameFileOrFolder)($request, $id);
|
||||
|
||||
if ($request->input('type') === 'folder') {
|
||||
return new FolderResource($item);
|
||||
return response()->json(new FolderResource($item));
|
||||
}
|
||||
|
||||
return new FileResource($item);
|
||||
return response()->json(new FileResource($item));
|
||||
}
|
||||
|
||||
// If request contain icon or color, then change it
|
||||
@@ -47,9 +48,9 @@ class RenameFileOrFolderController extends Controller
|
||||
$item = ($this->renameFileOrFolder)($request, $id);
|
||||
|
||||
if ($request->input('type') === 'folder') {
|
||||
return new FolderResource($item);
|
||||
return response()->json(new FolderResource($item));
|
||||
}
|
||||
|
||||
return new FileResource($item);
|
||||
return response()->json(new FileResource($item));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
namespace Domain\Localization\Controllers;
|
||||
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Database\QueryException;
|
||||
use Domain\Localization\Models\Language;
|
||||
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
||||
@@ -13,7 +13,7 @@ class CurrentLocalizationController
|
||||
*/
|
||||
public function __invoke(
|
||||
string $lang
|
||||
): Collection {
|
||||
): JsonResponse {
|
||||
$translations = cache()
|
||||
->rememberForever("language-translations-$lang", function () use ($lang) {
|
||||
try {
|
||||
@@ -25,8 +25,10 @@ class CurrentLocalizationController
|
||||
}
|
||||
});
|
||||
|
||||
return $translations
|
||||
$appTranslations = $translations
|
||||
? map_language_translations($translations)
|
||||
: get_default_language_translations();
|
||||
|
||||
return response()->json($appTranslations);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
namespace Domain\Localization\Controllers;
|
||||
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Domain\Settings\Models\Setting;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Localization\Models\Language;
|
||||
@@ -15,41 +15,48 @@ class LanguageController extends Controller
|
||||
/**
|
||||
* Get all languages for admin translate
|
||||
*/
|
||||
public function index(): Response
|
||||
public function index(): JsonResponse
|
||||
{
|
||||
return response(
|
||||
return response()->json(
|
||||
new LanguageCollection(
|
||||
Language::sortable(['created_at', 'DESC'])->get()
|
||||
),
|
||||
200
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all language strings for admin translate
|
||||
*/
|
||||
public function show(Language $language): Response
|
||||
{
|
||||
return response(
|
||||
new LanguageResource($language),
|
||||
200
|
||||
);
|
||||
public function show(
|
||||
Language $language
|
||||
): JsonResponse {
|
||||
return response()->json(new LanguageResource($language));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create new language
|
||||
*/
|
||||
public function store(CreateLanguageRequest $request): Response
|
||||
{
|
||||
public function store(
|
||||
CreateLanguageRequest $request
|
||||
): JsonResponse {
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
if (is_demo()) {
|
||||
$language = Language::query()
|
||||
->where('locale', 'en')
|
||||
->first();
|
||||
|
||||
return response()->json(
|
||||
new LanguageResource($language),
|
||||
201
|
||||
);
|
||||
}
|
||||
|
||||
$language = Language::create([
|
||||
'name' => $request->input('name'),
|
||||
'locale' => $request->input('locale'),
|
||||
]);
|
||||
|
||||
return response(
|
||||
return response()->json(
|
||||
new LanguageResource($language),
|
||||
201
|
||||
);
|
||||
@@ -61,15 +68,20 @@ class LanguageController extends Controller
|
||||
public function update(
|
||||
UpdateLanguageRequest $request,
|
||||
Language $language
|
||||
): Response {
|
||||
): JsonResponse {
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
if (is_demo()) {
|
||||
return response()->json(
|
||||
new LanguageResource($language),
|
||||
201
|
||||
);
|
||||
}
|
||||
|
||||
$language->update(
|
||||
make_single_input($request)
|
||||
);
|
||||
|
||||
return response(
|
||||
return response()->json(
|
||||
new LanguageResource($language),
|
||||
201
|
||||
);
|
||||
@@ -78,13 +90,23 @@ class LanguageController extends Controller
|
||||
/**
|
||||
* Delete the language with all children strings
|
||||
*/
|
||||
public function destroy(Language $language): Response
|
||||
{
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
public function destroy(
|
||||
Language $language
|
||||
): JsonResponse {
|
||||
$message = [
|
||||
'type' => 'success',
|
||||
'message' => 'The language was successfully deleted',
|
||||
];
|
||||
|
||||
if (is_demo()) {
|
||||
return response()->json($message);
|
||||
}
|
||||
|
||||
if ($language->locale === 'en') {
|
||||
return response("Sorry, you can't delete default language.", 401);
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => "Sorry, you can't delete default language.",
|
||||
], 422);
|
||||
}
|
||||
|
||||
// If user try to delete language used as default,
|
||||
@@ -96,9 +118,6 @@ class LanguageController extends Controller
|
||||
|
||||
$language->delete();
|
||||
|
||||
return response(
|
||||
'Done',
|
||||
204
|
||||
);
|
||||
return response()->json($message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
namespace Domain\Localization\Controllers;
|
||||
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Localization\Models\Language;
|
||||
use Domain\Localization\Requests\UpdateStringRequest;
|
||||
@@ -14,9 +14,15 @@ class UpdateLanguageStringController extends Controller
|
||||
public function __invoke(
|
||||
UpdateStringRequest $request,
|
||||
Language $language,
|
||||
): Response {
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
): JsonResponse {
|
||||
$message = [
|
||||
'type' => 'success',
|
||||
'message' => 'The language strings was successfully updated',
|
||||
];
|
||||
|
||||
if (is_demo()) {
|
||||
return response()->json($message);
|
||||
}
|
||||
|
||||
$language
|
||||
->languageTranslations()
|
||||
@@ -27,9 +33,6 @@ class UpdateLanguageStringController extends Controller
|
||||
|
||||
cache()->forget("language-translations-{$language->locale}");
|
||||
|
||||
return response(
|
||||
'Done',
|
||||
204
|
||||
);
|
||||
return response()->json($message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,10 @@ class FlushUserNotificationsController extends Controller
|
||||
}
|
||||
|
||||
// Delete all notifications
|
||||
auth()->user()->notifications()->delete();
|
||||
auth()
|
||||
->user()
|
||||
->notifications()
|
||||
->delete();
|
||||
|
||||
return response()->json($successMessage);
|
||||
}
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
<?php
|
||||
namespace Domain\Notifications\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Notifications\Resources\NotificationCollection;
|
||||
|
||||
class GetUserNotificationsController extends Controller
|
||||
{
|
||||
public function __invoke(): NotificationCollection
|
||||
public function __invoke(): JsonResponse
|
||||
{
|
||||
return new NotificationCollection(
|
||||
$notifications = new NotificationCollection(
|
||||
auth()->user()->notifications
|
||||
);
|
||||
|
||||
return response()->json($notifications);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,9 +18,12 @@ class MarkUserNotificationsAsReadController extends Controller
|
||||
}
|
||||
|
||||
// Mark all notifications as read
|
||||
auth()->user()->unreadNotifications()->update([
|
||||
'read_at' => now(),
|
||||
]);
|
||||
auth()
|
||||
->user()
|
||||
->unreadNotifications()
|
||||
->update([
|
||||
'read_at' => now(),
|
||||
]);
|
||||
|
||||
return response()->json($successMessage);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ namespace Domain\Pages\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Domain\Pages\Models\Page;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Pages\Resources\PageResource;
|
||||
use Domain\Pages\Resources\PageCollection;
|
||||
@@ -13,37 +13,38 @@ class AdminPagesController extends Controller
|
||||
/**
|
||||
* Get all pages
|
||||
*/
|
||||
public function index(): PageCollection
|
||||
public function index(): JsonResponse
|
||||
{
|
||||
return new PageCollection(
|
||||
return response()->json(new PageCollection(
|
||||
Page::sortable()
|
||||
->paginate(10)
|
||||
);
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get single page resource
|
||||
*/
|
||||
public function show(Page $page): PageResource
|
||||
public function show(Page $page): JsonResponse
|
||||
{
|
||||
return new PageResource($page);
|
||||
return response()->json(new PageResource($page));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update page content
|
||||
*/
|
||||
public function update(Request $request, Page $page): Response
|
||||
{
|
||||
public function update(
|
||||
Request $request,
|
||||
Page $page,
|
||||
): JsonResponse {
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
if (is_demo()) {
|
||||
return response()->json(new PageResource($page));
|
||||
}
|
||||
|
||||
$page->update(
|
||||
make_single_input($request)
|
||||
);
|
||||
|
||||
return response(
|
||||
new PageResource($page),
|
||||
204
|
||||
);
|
||||
return response()->json(new PageResource($page));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,8 +15,10 @@ class RemoteUploadFileController extends Controller
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(RemoteUploadRequest $request, ?Share $shared = null): JsonResponse
|
||||
{
|
||||
public function __invoke(
|
||||
RemoteUploadRequest $request,
|
||||
?Share $shared = null,
|
||||
): JsonResponse {
|
||||
$successMessage = [
|
||||
'type' => 'success',
|
||||
'message' => 'Files was successfully uploaded.',
|
||||
|
||||
@@ -6,6 +6,7 @@ use Domain\UploadRequest\Models\UploadRequest;
|
||||
use Domain\RemoteUpload\Requests\RemoteUploadRequest;
|
||||
use Domain\RemoteUpload\Actions\GetContentFromExternalSource;
|
||||
use Domain\UploadRequest\Actions\CreateUploadRequestRootFolderAction;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
|
||||
class UploadFilesRemotelyForUploadRequestController
|
||||
{
|
||||
@@ -15,8 +16,10 @@ class UploadFilesRemotelyForUploadRequestController
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(RemoteUploadRequest $request, UploadRequest $uploadRequest)
|
||||
{
|
||||
public function __invoke(
|
||||
RemoteUploadRequest $request,
|
||||
UploadRequest $uploadRequest
|
||||
): JsonResponse {
|
||||
$successMessage = [
|
||||
'type' => 'success',
|
||||
'message' => 'Files was successfully uploaded.',
|
||||
|
||||
@@ -1,35 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace Domain\Settings\Controllers;
|
||||
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
|
||||
class DownloadLogController extends Controller
|
||||
{
|
||||
public function __invoke($log): Response|BinaryFileResponse|Application|ResponseFactory
|
||||
public function __invoke($log): JsonResponse|BinaryFileResponse
|
||||
{
|
||||
if (is_demo()) {
|
||||
return response('Done.', 204);
|
||||
return response()->json([
|
||||
'type' => 'success',
|
||||
]);
|
||||
}
|
||||
|
||||
// Get log path
|
||||
$logPath = storage_path("logs/$log");
|
||||
|
||||
// Download log
|
||||
return response()->download(
|
||||
storage_path("logs/$log"),
|
||||
$log,
|
||||
[
|
||||
return response()
|
||||
->download(storage_path("logs/$log"), $log, [
|
||||
'Accept-Ranges' => 'bytes',
|
||||
'Content-Type' => 'text/plain',
|
||||
'Content-Length' => File::size($logPath),
|
||||
'Content-Range' => 'bytes 0-600/' . File::size($logPath),
|
||||
'Content-Disposition' => "attachment; filename=$log",
|
||||
]
|
||||
);
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
namespace Domain\Settings\Controllers;
|
||||
|
||||
use Artisan;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
class FlushCacheController extends Controller
|
||||
@@ -10,10 +10,17 @@ class FlushCacheController extends Controller
|
||||
/**
|
||||
* Clear application cache
|
||||
*/
|
||||
public function __invoke(): Response
|
||||
public function __invoke(): JsonResponse
|
||||
{
|
||||
$message = [
|
||||
'type' => 'success',
|
||||
'message' => 'The cache was successfully flushed',
|
||||
];
|
||||
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
if (is_demo()) {
|
||||
return response()->json($message);
|
||||
}
|
||||
|
||||
if (! app()->runningUnitTests()) {
|
||||
Artisan::call('cache:clear');
|
||||
@@ -21,6 +28,6 @@ class FlushCacheController extends Controller
|
||||
Artisan::call('config:cache');
|
||||
}
|
||||
|
||||
return response('Done', 204);
|
||||
return response()->json($message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
namespace Domain\Settings\Controllers;
|
||||
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
||||
|
||||
class GetAppImageController
|
||||
{
|
||||
@@ -12,10 +12,10 @@ class GetAppImageController
|
||||
*/
|
||||
public function __invoke(
|
||||
string $basename
|
||||
): StreamedResponse | Response {
|
||||
): StreamedResponse {
|
||||
// Check if file exist
|
||||
if (! Storage::exists("/system/$basename")) {
|
||||
return response('File not found', 404);
|
||||
throw new ModelNotFoundException();
|
||||
}
|
||||
|
||||
// Return avatar
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
namespace Domain\Settings\Controllers;
|
||||
|
||||
use Storage;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Support\Status\Actions\GetServerSetupStatusAction;
|
||||
|
||||
class GetServerStatusController
|
||||
@@ -11,7 +12,7 @@ class GetServerStatusController
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(): array
|
||||
public function __invoke(): JsonResponse
|
||||
{
|
||||
// Get server data
|
||||
$status = ($this->getServerSetupStatus)();
|
||||
@@ -32,6 +33,6 @@ class GetServerStatusController
|
||||
'lastUpdate' => isRunningCron() ? format_date(cache()->get('latest_cron_update')) : null,
|
||||
];
|
||||
|
||||
return $status;
|
||||
return response()->json($status);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
namespace Domain\Settings\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Domain\Settings\Models\Setting;
|
||||
|
||||
class GetSettingsValueController
|
||||
@@ -17,24 +17,32 @@ class GetSettingsValueController
|
||||
*/
|
||||
public function __invoke(
|
||||
Request $request
|
||||
): Collection {
|
||||
): JsonResponse {
|
||||
if (str_contains($request->get('column'), '|')) {
|
||||
$columns = collect(explode('|', $request->get('column')))
|
||||
->each(function ($column) {
|
||||
if (in_array($column, $this->blacklist)) {
|
||||
abort(401);
|
||||
abort(
|
||||
response()->json(accessDeniedError(), 401)
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
return Setting::whereIn('name', $columns)
|
||||
$settings = Setting::whereIn('name', $columns)
|
||||
->pluck('value', 'name');
|
||||
|
||||
return response()->json($settings);
|
||||
}
|
||||
|
||||
if (in_array($request->get('column'), $this->blacklist)) {
|
||||
abort(401);
|
||||
abort(
|
||||
response()->json(accessDeniedError(), 401)
|
||||
);
|
||||
}
|
||||
|
||||
return Setting::where('name', $request->get('column'))
|
||||
$settings = Setting::where('name', $request->get('column'))
|
||||
->pluck('value', 'name');
|
||||
|
||||
return response()->json($settings);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
namespace Domain\Settings\Controllers;
|
||||
|
||||
use Artisan;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Domain\Settings\Requests\StoreBroadcastServiceCredentialsRequest;
|
||||
|
||||
class StoreBroadcastServiceCredentialsController
|
||||
@@ -10,10 +10,17 @@ class StoreBroadcastServiceCredentialsController
|
||||
/**
|
||||
* Configure stripe additionally
|
||||
*/
|
||||
public function __invoke(StoreBroadcastServiceCredentialsRequest $request): Response
|
||||
{
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
public function __invoke(
|
||||
StoreBroadcastServiceCredentialsRequest $request
|
||||
): JsonResponse {
|
||||
$message = [
|
||||
'type' => 'success',
|
||||
'message' => 'The 3rd part authentication credentials was successfully set',
|
||||
];
|
||||
|
||||
if (is_demo()) {
|
||||
return response()->json($message);
|
||||
}
|
||||
|
||||
// Get and store credentials
|
||||
if (! app()->runningUnitTests()) {
|
||||
@@ -54,6 +61,6 @@ class StoreBroadcastServiceCredentialsController
|
||||
}
|
||||
}
|
||||
|
||||
return response('Done', 204);
|
||||
return response()->json($message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,10 +22,18 @@ class StoreEmailCredentialsController
|
||||
/**
|
||||
* Set new email credentials to .env file
|
||||
*/
|
||||
public function __invoke(StoreEmailCredentialsRequest $request): JsonResponse
|
||||
{
|
||||
public function __invoke(
|
||||
StoreEmailCredentialsRequest $request
|
||||
): JsonResponse {
|
||||
$message = [
|
||||
'type' => 'success',
|
||||
'message' => 'The email credentials was successfully set',
|
||||
];
|
||||
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
if (is_demo()) {
|
||||
return response()->json($message);
|
||||
}
|
||||
|
||||
if (! app()->runningUnitTests()) {
|
||||
// Test email connection
|
||||
@@ -107,6 +115,6 @@ class StoreEmailCredentialsController
|
||||
Artisan::call('config:cache');
|
||||
}
|
||||
|
||||
return response()->json('Done', 204);
|
||||
return response()->json($message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
namespace Domain\Settings\Controllers;
|
||||
|
||||
use Artisan;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Domain\Settings\Models\Setting;
|
||||
use Domain\Settings\Actions\TestPayPalConnectionAction;
|
||||
use Domain\Settings\Actions\TestStripeConnectionAction;
|
||||
@@ -21,10 +21,17 @@ class StorePaymentServiceCredentialsController
|
||||
/**
|
||||
* Configure stripe additionally
|
||||
*/
|
||||
public function __invoke(StorePaymentServiceCredentialsRequest $request): Response
|
||||
{
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
public function __invoke(
|
||||
StorePaymentServiceCredentialsRequest $request
|
||||
): JsonResponse {
|
||||
$message = [
|
||||
'type' => 'success',
|
||||
'message' => 'The payment credentials was successfully set',
|
||||
];
|
||||
|
||||
if (is_demo()) {
|
||||
return response()->json($message);
|
||||
}
|
||||
|
||||
$options = [
|
||||
'stripe' => [
|
||||
@@ -105,6 +112,6 @@ class StorePaymentServiceCredentialsController
|
||||
}
|
||||
}
|
||||
|
||||
return response('Done', 204);
|
||||
return response()->json($message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
namespace Domain\Settings\Controllers;
|
||||
|
||||
use Artisan;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Domain\Settings\Models\Setting;
|
||||
use Domain\Settings\Requests\StoreSocialServiceCredentialsRequest;
|
||||
|
||||
@@ -11,10 +11,17 @@ class StoreSocialServiceCredentialsController
|
||||
/**
|
||||
* Configure stripe additionally
|
||||
*/
|
||||
public function __invoke(StoreSocialServiceCredentialsRequest $request): Response
|
||||
{
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
public function __invoke(
|
||||
StoreSocialServiceCredentialsRequest $request
|
||||
): JsonResponse {
|
||||
$message = [
|
||||
'type' => 'success',
|
||||
'message' => 'The 3rd part authentication credentials was successfully set',
|
||||
];
|
||||
|
||||
if (is_demo()) {
|
||||
return response()->json($message);
|
||||
}
|
||||
|
||||
// Set on social login
|
||||
Setting::updateOrCreate([
|
||||
@@ -55,6 +62,6 @@ class StoreSocialServiceCredentialsController
|
||||
}
|
||||
}
|
||||
|
||||
return response('Done', 204);
|
||||
return response()->json($message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
namespace Domain\Settings\Controllers;
|
||||
|
||||
use Artisan;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Domain\Settings\DTO\S3CredentialsData;
|
||||
use Domain\Settings\Actions\TestS3ConnectionAction;
|
||||
use Domain\Settings\Actions\TestFTPConnectionAction;
|
||||
@@ -19,10 +19,17 @@ class StoreStorageCredentialsController
|
||||
/**
|
||||
* Set new email credentials to .env file
|
||||
*/
|
||||
public function __invoke(StoreStorageCredentialsRequest $request): Response
|
||||
{
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
public function __invoke(
|
||||
StoreStorageCredentialsRequest $request
|
||||
): JsonResponse {
|
||||
$message = [
|
||||
'type' => 'success',
|
||||
'message' => 'The storage credentials was successfully set',
|
||||
];
|
||||
|
||||
if (is_demo()) {
|
||||
return response()->json($message);
|
||||
}
|
||||
|
||||
// Get storage driver from request
|
||||
$driver = match ($request->input('storage.driver')) {
|
||||
@@ -72,6 +79,6 @@ class StoreStorageCredentialsController
|
||||
Artisan::call('config:cache');
|
||||
}
|
||||
|
||||
return response('Done', 204);
|
||||
return response()->json($message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
namespace Domain\Settings\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Domain\Settings\Models\Setting;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
@@ -12,10 +12,17 @@ class UpdateSettingValueController extends Controller
|
||||
/**
|
||||
* Update setting item.
|
||||
*/
|
||||
public function __invoke(Request $request): Response
|
||||
public function __invoke(Request $request): JsonResponse
|
||||
{
|
||||
$message = [
|
||||
'type' => 'success',
|
||||
'message' => 'The value was successfully updated',
|
||||
];
|
||||
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
if (is_demo()) {
|
||||
return response()->json($message);
|
||||
}
|
||||
|
||||
// Store image if exist
|
||||
if ($request->hasFile($request->input('name'))) {
|
||||
@@ -26,7 +33,7 @@ class UpdateSettingValueController extends Controller
|
||||
'value' => store_system_image($request, $request->input('name')),
|
||||
]);
|
||||
|
||||
return response('Done', 204);
|
||||
return response()->json($message);
|
||||
}
|
||||
|
||||
// Set paypal live option
|
||||
@@ -41,7 +48,7 @@ class UpdateSettingValueController extends Controller
|
||||
Artisan::call('config:cache');
|
||||
}
|
||||
|
||||
return response('Done', 204);
|
||||
return response()->json($message);
|
||||
}
|
||||
|
||||
// Find and update variable
|
||||
@@ -50,6 +57,6 @@ class UpdateSettingValueController extends Controller
|
||||
['value' => $request->input('value')]
|
||||
);
|
||||
|
||||
return response('Done', 204);
|
||||
return response()->json($message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,19 +3,18 @@ namespace Domain\Settings\Controllers;
|
||||
|
||||
use DB;
|
||||
use Artisan;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Domain\Settings\Models\Setting;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Domain\Localization\Models\Language;
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
use Domain\Settings\Requests\UpgradeLicenseRequest;
|
||||
|
||||
class UpgradeLicenseController extends Controller
|
||||
{
|
||||
public function __invoke(UpgradeLicenseRequest $request): Response|Application|ResponseFactory
|
||||
{
|
||||
public function __invoke(
|
||||
UpgradeLicenseRequest $request
|
||||
): JsonResponse {
|
||||
// Verify purchase code
|
||||
$response = Http::get("https://verify.vuefilemanager.com/api/verify-code/{$request->input('purchaseCode')}");
|
||||
|
||||
@@ -94,9 +93,15 @@ class UpgradeLicenseController extends Controller
|
||||
Artisan::call('config:clear');
|
||||
Artisan::call('cache:clear');
|
||||
|
||||
return response('Your license was successfully upgraded', 201);
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'Your license was successfully upgraded',
|
||||
], 201);
|
||||
}
|
||||
|
||||
return response('Purchase code is invalid or is not Extended License.', 400);
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => 'Purchase code is invalid or is not Extended License.',
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
namespace Domain\SetupWizard\Controllers;
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Domain\Settings\Models\Setting;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\SetupWizard\Requests\StoreAppSetupRequest;
|
||||
@@ -14,7 +14,7 @@ class StoreAppSettingsController extends Controller
|
||||
*/
|
||||
public function __invoke(
|
||||
StoreAppSetupRequest $request
|
||||
): Response {
|
||||
): JsonResponse {
|
||||
collect([
|
||||
[
|
||||
'name' => 'subscription_type',
|
||||
@@ -102,6 +102,9 @@ class StoreAppSettingsController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
return response('Done', 204);
|
||||
return response()->json([
|
||||
'type' => 'success',
|
||||
'message' => 'The app settings was set successfully',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ namespace Domain\SetupWizard\Controllers;
|
||||
|
||||
use DB;
|
||||
use Artisan;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Response;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Doctrine\DBAL\Driver\PDOException;
|
||||
@@ -16,7 +17,7 @@ class StoreDatabaseCredentialsController extends Controller
|
||||
*/
|
||||
public function __invoke(
|
||||
StoreDatabaseCredentialsRequest $request
|
||||
): Response {
|
||||
): JsonResponse {
|
||||
if (! app()->runningUnitTests()) {
|
||||
try {
|
||||
// Set temporary database connection
|
||||
@@ -57,6 +58,9 @@ class StoreDatabaseCredentialsController extends Controller
|
||||
Artisan::call('config:cache');
|
||||
}
|
||||
|
||||
return response('Done', 204);
|
||||
return response()->json([
|
||||
'type' => 'success',
|
||||
'message' => 'The database was set successfully',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,6 +194,9 @@ class StoreEnvironmentSettingsController extends Controller
|
||||
Artisan::call('config:cache');
|
||||
}
|
||||
|
||||
return response()->json('Done', 204);
|
||||
return response()->json([
|
||||
'type' => 'success',
|
||||
'message' => 'The environment was set successfully',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
namespace Domain\Sharing\Controllers;
|
||||
|
||||
use BaconQrCode\Writer;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use BaconQrCode\Renderer\Color\Rgb;
|
||||
use App\Http\Controllers\Controller;
|
||||
use BaconQrCode\Renderer\ImageRenderer;
|
||||
@@ -12,8 +12,9 @@ use BaconQrCode\Renderer\RendererStyle\RendererStyle;
|
||||
|
||||
class GetShareLinkViaQrCodeController extends Controller
|
||||
{
|
||||
public function __invoke($token): Response
|
||||
{
|
||||
public function __invoke(
|
||||
$token
|
||||
): JsonResponse {
|
||||
// Get share url
|
||||
$url = url('/share', ['token' => $token]);
|
||||
|
||||
@@ -28,6 +29,12 @@ class GetShareLinkViaQrCodeController extends Controller
|
||||
$qrCode = trim(substr($svg, strpos($svg, "\n") + 1));
|
||||
|
||||
// Return qr code
|
||||
return response($qrCode);
|
||||
return response()->json([
|
||||
'type' => 'success',
|
||||
'message' => 'QR code successfully generated',
|
||||
'data' => [
|
||||
'svg' => $qrCode,
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,8 +54,9 @@ class ShareController extends Controller
|
||||
/**
|
||||
* Delete sharing item
|
||||
*/
|
||||
public function destroy(RevokeSharesRequest $request): JsonResponse
|
||||
{
|
||||
public function destroy(
|
||||
RevokeSharesRequest $request
|
||||
): JsonResponse {
|
||||
foreach ($request->input('tokens') as $token) {
|
||||
// Delete share record
|
||||
$record = Share::where('token', $token)
|
||||
|
||||
@@ -28,7 +28,7 @@ class VisitorUnlockLockedShareController extends Controller
|
||||
]);
|
||||
|
||||
// Return authorize token with shared options
|
||||
return response(new ShareResource($shared), 200)
|
||||
return response(new ShareResource($shared))
|
||||
->cookie('share_session', $cookie, 43200);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
namespace Domain\Teams\Controllers;
|
||||
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Illuminate\Auth\Access\AuthorizationException;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
@@ -19,6 +20,9 @@ class ConvertFolderIntoTeamFolderController extends Controller
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws AuthorizationException
|
||||
*/
|
||||
public function __invoke(
|
||||
ConvertIntoTeamFolderRequest $request,
|
||||
Folder $folder
|
||||
|
||||
@@ -11,8 +11,9 @@ use Domain\Teams\Actions\ClearActionInInvitationNotificationAction;
|
||||
|
||||
class InvitationsController extends Controller
|
||||
{
|
||||
public function show(TeamFolderInvitation $invitation): JsonResponse
|
||||
{
|
||||
public function show(
|
||||
TeamFolderInvitation $invitation
|
||||
): JsonResponse {
|
||||
// Check if invitation is not pending
|
||||
if ($invitation->status !== 'pending') {
|
||||
return response()->json([
|
||||
|
||||
@@ -9,8 +9,9 @@ use App\Http\Controllers\Controller;
|
||||
|
||||
class LeaveTeamFolderController extends Controller
|
||||
{
|
||||
public function __invoke(Folder $folder): JsonResponse
|
||||
{
|
||||
public function __invoke(
|
||||
Folder $folder
|
||||
): JsonResponse {
|
||||
$successMessage = [
|
||||
'type' => 'success',
|
||||
'message' => 'You left the team folder.',
|
||||
|
||||
@@ -7,13 +7,14 @@ use Illuminate\Http\JsonResponse;
|
||||
|
||||
class NavigationTreeController
|
||||
{
|
||||
public function __invoke(Folder $folder): JsonResponse
|
||||
{
|
||||
public function __invoke(
|
||||
Folder $folder
|
||||
): JsonResponse {
|
||||
// Get the root team folder
|
||||
$teamFolder = $folder->getLatestParent();
|
||||
|
||||
if (! Gate::any(['can-edit', 'can-view'], [$teamFolder, null])) {
|
||||
abort(403, 'Access Denied');
|
||||
return response()->json(accessDeniedError(), 403);
|
||||
}
|
||||
|
||||
$folders = Folder::with('folders:id,parent_id,id,name,team_folder')
|
||||
|
||||
@@ -2,18 +2,19 @@
|
||||
namespace Domain\Transactions\Controllers;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Transactions\Resources\TransactionCollection;
|
||||
use VueFileManager\Subscription\Domain\Transactions\Models\Transaction;
|
||||
|
||||
class GetAllTransactionsController extends Controller
|
||||
{
|
||||
public function __invoke(User $user)
|
||||
public function __invoke(User $user): JsonResponse
|
||||
{
|
||||
$transactions = Transaction::with('user')
|
||||
->sortable(['created_at' => 'desc'])
|
||||
->paginate(20);
|
||||
|
||||
return new TransactionCollection($transactions);
|
||||
return response()->json(new TransactionCollection($transactions));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,18 +2,19 @@
|
||||
namespace Domain\Transactions\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Domain\Transactions\Resources\TransactionCollection;
|
||||
|
||||
class GetTransactionsController extends Controller
|
||||
{
|
||||
public function __invoke()
|
||||
public function __invoke(): JsonResponse
|
||||
{
|
||||
$transactions = Auth::user()
|
||||
->transactions()
|
||||
->sortable(['created_at' => 'desc'])
|
||||
->paginate(15);
|
||||
|
||||
return new TransactionCollection($transactions);
|
||||
return response()->json(new TransactionCollection($transactions));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,18 +2,19 @@
|
||||
namespace Domain\Transactions\Controllers;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Transactions\Resources\TransactionCollection;
|
||||
|
||||
class GetUserTransactionsController extends Controller
|
||||
{
|
||||
public function __invoke(User $user)
|
||||
public function __invoke(User $user): JsonResponse
|
||||
{
|
||||
$transactions = $user
|
||||
->transactions()
|
||||
->sortable(['created_at' => 'desc'])
|
||||
->paginate(20);
|
||||
|
||||
return new TransactionCollection($transactions);
|
||||
return response()->json(new TransactionCollection($transactions));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,8 +17,9 @@ class CreateUploadRequestController extends Controller
|
||||
/**
|
||||
* @throws AuthorizationException
|
||||
*/
|
||||
public function __invoke(StoreUploadRequest $request): JsonResponse
|
||||
{
|
||||
public function __invoke(
|
||||
StoreUploadRequest $request
|
||||
): JsonResponse {
|
||||
// Check if user is owner of the file
|
||||
if ($request->has('folder_id')) {
|
||||
$folder = Folder::findOrFail($request->input('folder_id'));
|
||||
|
||||
@@ -15,11 +15,6 @@ class DeleteFileOrFolderController
|
||||
DeleteItemRequest $request,
|
||||
UploadRequest $uploadRequest
|
||||
): JsonResponse {
|
||||
$successMessage = [
|
||||
'type' => 'success',
|
||||
'message' => 'Items was successfully deleted.',
|
||||
];
|
||||
|
||||
foreach ($request->input('items') as $file) {
|
||||
// Get file or folder item
|
||||
$item = get_item($file['type'], $file['id']);
|
||||
@@ -35,7 +30,10 @@ class DeleteFileOrFolderController
|
||||
}
|
||||
}
|
||||
|
||||
return response()->json($successMessage);
|
||||
return response()->json([
|
||||
'type' => 'success',
|
||||
'message' => 'Items was successfully deleted.',
|
||||
]);
|
||||
}
|
||||
|
||||
private function destroyFile(File $file): void
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
namespace Domain\UploadRequest\Controllers\FileAccess;
|
||||
|
||||
use Domain\Files\Models\File;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Domain\Files\Actions\DownloadFileAction;
|
||||
use Domain\UploadRequest\Models\UploadRequest;
|
||||
@@ -20,10 +19,13 @@ class GetFileFromUploadRequestController
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
|
||||
*/
|
||||
public function __invoke(
|
||||
string $filename,
|
||||
UploadRequest $uploadRequest
|
||||
): StreamedResponse|RedirectResponse|Response {
|
||||
UploadRequest $uploadRequest,
|
||||
): StreamedResponse|RedirectResponse {
|
||||
// Get file
|
||||
$file = File::where('user_id', $uploadRequest->user_id)
|
||||
->where('basename', $filename)
|
||||
|
||||
@@ -2,13 +2,10 @@
|
||||
namespace Domain\UploadRequest\Controllers\FileAccess;
|
||||
|
||||
use Domain\Files\Models\File;
|
||||
use Illuminate\Http\Response;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\UploadRequest\Models\UploadRequest;
|
||||
use Domain\Traffic\Actions\RecordDownloadAction;
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
use Domain\Files\Actions\DownloadThumbnailAction;
|
||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
|
||||
/**
|
||||
@@ -22,10 +19,13 @@ class GetThumbnailFromUploadRequestController extends Controller
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
|
||||
*/
|
||||
public function __invoke(
|
||||
string $filename,
|
||||
UploadRequest $uploadRequest
|
||||
): Application|ResponseFactory|Response|StreamedResponse {
|
||||
): StreamedResponse {
|
||||
// Get file
|
||||
$file = File::where('user_id', $uploadRequest->user_id)
|
||||
->where('basename', substr($filename, 3))
|
||||
|
||||
@@ -1,25 +1,24 @@
|
||||
<?php
|
||||
namespace Domain\UploadRequest\Controllers;
|
||||
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\UploadRequest\Models\UploadRequest;
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||
|
||||
class GetFolderTreeForUploadRequestController extends Controller
|
||||
{
|
||||
public function __invoke(UploadRequest $uploadRequest): Application|ResponseFactory|Response|array
|
||||
{
|
||||
public function __invoke(
|
||||
UploadRequest $uploadRequest
|
||||
): JsonResponse {
|
||||
// Get folders
|
||||
$folders = Folder::with('folders:id,parent_id,name')
|
||||
->whereParentId($uploadRequest->id)
|
||||
->whereUserId($uploadRequest->user_id)
|
||||
->where('parent_id', $uploadRequest->id)
|
||||
->where('user_id', $uploadRequest->user_id)
|
||||
->sortable()
|
||||
->get(['id', 'parent_id', 'id', 'name']);
|
||||
|
||||
return [
|
||||
return response()->json([
|
||||
[
|
||||
'name' => __t('upload_request'),
|
||||
'location' => 'upload-request',
|
||||
@@ -27,6 +26,6 @@ class GetFolderTreeForUploadRequestController extends Controller
|
||||
'isMovable' => true,
|
||||
'isOpen' => true,
|
||||
],
|
||||
];
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
<?php
|
||||
namespace Domain\UploadRequest\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Domain\UploadRequest\Models\UploadRequest;
|
||||
use Domain\UploadRequest\Resources\UploadRequestResource;
|
||||
|
||||
class GetUploadRequestController
|
||||
{
|
||||
public function __invoke(UploadRequest $uploadRequest)
|
||||
{
|
||||
return new UploadRequestResource($uploadRequest);
|
||||
public function __invoke(
|
||||
UploadRequest $uploadRequest
|
||||
): JsonResponse {
|
||||
return response()->json(new UploadRequestResource($uploadRequest));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,9 @@ class MoveItemInUploadRequestController extends Controller
|
||||
return response()->json(accessDeniedError(), 403);
|
||||
}
|
||||
|
||||
$item->update(['parent_id' => $request->input('to_id') ?? $uploadRequest->id]);
|
||||
$item->update([
|
||||
'parent_id' => $request->input('to_id') ?? $uploadRequest->id
|
||||
]);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
|
||||
@@ -7,6 +7,7 @@ use Domain\Folders\Resources\FolderResource;
|
||||
use Domain\Items\Requests\RenameItemRequest;
|
||||
use Domain\UploadRequest\Models\UploadRequest;
|
||||
use Domain\Folders\Actions\UpdateFolderPropertyAction;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Support\Demo\Actions\FakeRenameFileOrFolderAction;
|
||||
|
||||
class RenameFileOrFolderController extends Controller
|
||||
@@ -17,14 +18,17 @@ class RenameFileOrFolderController extends Controller
|
||||
) {
|
||||
}
|
||||
|
||||
public function __invoke(UploadRequest $uploadRequest, string $id, RenameItemRequest $request)
|
||||
{
|
||||
public function __invoke(
|
||||
UploadRequest $uploadRequest,
|
||||
string $id,
|
||||
RenameItemRequest $request,
|
||||
): JsonResponse {
|
||||
// Get item
|
||||
$item = get_item($request->input('type'), $id);
|
||||
|
||||
// Check privileges
|
||||
if (! in_array($item->parent_id, getChildrenFolderIds($uploadRequest->id))) {
|
||||
return response('Access Denied', 403);
|
||||
return response()->json(accessDeniedError(), 403);
|
||||
}
|
||||
|
||||
// If request contain icon or color, then change it
|
||||
@@ -36,9 +40,9 @@ class RenameFileOrFolderController extends Controller
|
||||
$item->update(['name' => $request->input('name')]);
|
||||
|
||||
if ($request->input('type') === 'folder') {
|
||||
return new FolderResource($item);
|
||||
return response()->json(new FolderResource($item));
|
||||
}
|
||||
|
||||
return new FileResource($item);
|
||||
return response()->json(new FileResource($item));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,8 +7,9 @@ use Domain\UploadRequest\Notifications\UploadRequestFulfilledNotification;
|
||||
|
||||
class SetUploadRequestAsFilledController
|
||||
{
|
||||
public function __invoke(UploadRequest $uploadRequest): JsonResponse
|
||||
{
|
||||
public function __invoke(
|
||||
UploadRequest $uploadRequest
|
||||
): JsonResponse {
|
||||
$uploadRequest->update([
|
||||
'status' => 'filled',
|
||||
]);
|
||||
|
||||
@@ -24,8 +24,10 @@ class UploadFileChunksForUploadRequestController
|
||||
/**
|
||||
* @throws FileNotFoundException
|
||||
*/
|
||||
public function __invoke(UploadChunkRequest $request, UploadRequest $uploadRequest)
|
||||
{
|
||||
public function __invoke(
|
||||
UploadChunkRequest $request,
|
||||
UploadRequest $uploadRequest,
|
||||
) {
|
||||
// Get upload request root folder query
|
||||
$folder = Folder::where('id', $uploadRequest->id);
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@ class AdminTest extends TestCase
|
||||
$this
|
||||
->actingAs($admin)
|
||||
->postJson("/api/admin/users/$user->id/reset-password")
|
||||
->assertStatus(204);
|
||||
->assertStatus(200);
|
||||
|
||||
Notification::assertTimesSent(1, ResetPassword::class);
|
||||
}
|
||||
@@ -310,7 +310,7 @@ class AdminTest extends TestCase
|
||||
$this->deleteJson("/api/admin/users/$user->id/delete", [
|
||||
'name' => $user->settings->name,
|
||||
])
|
||||
->assertStatus(204);
|
||||
->assertStatus(200);
|
||||
|
||||
$this->assertDatabaseMissing('user_settings', [
|
||||
'user_id' => $user->id,
|
||||
|
||||
@@ -85,7 +85,7 @@ class AdminLanguageTranslatorTest extends TestCase
|
||||
$this
|
||||
->actingAs($admin)
|
||||
->deleteJson("/api/admin/languages/$language->id")
|
||||
->assertStatus(204);
|
||||
->assertStatus(200);
|
||||
|
||||
$this->assertDatabaseMissing('languages', [
|
||||
'name' => 'Slovenčina',
|
||||
@@ -114,7 +114,7 @@ class AdminLanguageTranslatorTest extends TestCase
|
||||
$this
|
||||
->actingAs($admin)
|
||||
->deleteJson("/api/admin/languages/$language->id")
|
||||
->assertStatus(401);
|
||||
->assertStatus(422);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -64,7 +64,7 @@ class AdminPagesTest extends TestCase
|
||||
->patchJson('/api/admin/pages/terms-of-service', [
|
||||
'name' => 'title',
|
||||
'value' => 'New Title',
|
||||
])->assertStatus(204);
|
||||
])->assertStatus(200);
|
||||
|
||||
$this->assertDatabaseHas('pages', [
|
||||
'title' => 'New Title',
|
||||
|
||||
@@ -84,7 +84,7 @@ class SettingsTest extends TestCase
|
||||
->patchJson('/api/admin/settings', [
|
||||
'name' => 'header_title',
|
||||
'value' => 'New Header Title',
|
||||
])->assertStatus(204);
|
||||
])->assertStatus(200);
|
||||
|
||||
$this->assertDatabaseHas('settings', [
|
||||
'value' => 'New Header Title',
|
||||
@@ -112,7 +112,7 @@ class SettingsTest extends TestCase
|
||||
->patchJson('/api/admin/settings', [
|
||||
'name' => 'app_logo',
|
||||
'app_logo' => $logo,
|
||||
])->assertStatus(204);
|
||||
])->assertStatus(200);
|
||||
|
||||
$this->assertDatabaseMissing('settings', [
|
||||
'app_logo' => null,
|
||||
@@ -134,7 +134,7 @@ class SettingsTest extends TestCase
|
||||
$this
|
||||
->actingAs($admin)
|
||||
->getJson('/api/admin/settings/flush-cache')
|
||||
->assertStatus(204);
|
||||
->assertStatus(200);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -151,7 +151,7 @@ class SettingsTest extends TestCase
|
||||
'service' => 'stripe',
|
||||
'key' => '123456789',
|
||||
'secret' => '123456789',
|
||||
])->assertStatus(204);
|
||||
])->assertStatus(200);
|
||||
|
||||
$this->assertDatabaseHas('settings', [
|
||||
'name' => 'allowed_stripe',
|
||||
@@ -173,7 +173,7 @@ class SettingsTest extends TestCase
|
||||
'client_id' => '123456789',
|
||||
'client_secret' => '123456789',
|
||||
'service' => 'facebook',
|
||||
])->assertStatus(204);
|
||||
])->assertStatus(200);
|
||||
|
||||
$this->assertDatabaseHas('settings', [
|
||||
'name' => 'allowed_facebook',
|
||||
@@ -198,7 +198,7 @@ class SettingsTest extends TestCase
|
||||
'smtp.username' => 'john@doe.com',
|
||||
'smtp.password' => 'secret',
|
||||
'smtp.encryption' => 'tls',
|
||||
])->assertStatus(204);
|
||||
])->assertStatus(200);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -220,7 +220,7 @@ class SettingsTest extends TestCase
|
||||
'bucket' => 'cloud',
|
||||
'endpoint' => 'https://cloud.frankfurt.storage.com',
|
||||
],
|
||||
])->assertStatus(204);
|
||||
])->assertStatus(200);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -241,7 +241,7 @@ class SettingsTest extends TestCase
|
||||
'cluster' => 'eu',
|
||||
'port' => null,
|
||||
'host' => null,
|
||||
])->assertStatus(204);
|
||||
])->assertStatus(200);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user