mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-05 18:23:48 +00:00
share records api update
This commit is contained in:
@@ -62,7 +62,7 @@
|
||||
"/chunks/settings-password.js": "/chunks/settings-password.js?id=d00bf503d8126dc4",
|
||||
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=092e324aad54656b",
|
||||
"/chunks/billing.js": "/chunks/billing.js?id=115c25478cee576d",
|
||||
"/chunks/platform.js": "/chunks/platform.js?id=6c6ff48803c933ab",
|
||||
"/chunks/platform.js": "/chunks/platform.js?id=e0dcb4aa27710e07",
|
||||
"/chunks/files.js": "/chunks/files.js?id=a74bc8acc7ea876a",
|
||||
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=c6ed26eaace65f01",
|
||||
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=6adbb309c700eaf7",
|
||||
|
||||
@@ -28,6 +28,6 @@ class GetShareLinkViaQrCodeController extends Controller
|
||||
$qrCode = trim(substr($svg, strpos($svg, "\n") + 1));
|
||||
|
||||
// Return qr code
|
||||
return response($qrCode, 201);
|
||||
return response($qrCode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
<?php
|
||||
namespace Domain\Sharing\Controllers;
|
||||
|
||||
use Illuminate\Http\Response;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Domain\Sharing\Requests\RevokeSharesRequest;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Domain\Sharing\Models\Share;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
@@ -25,34 +27,47 @@ class ShareController extends Controller
|
||||
public function update(
|
||||
UpdateShareRequest $request,
|
||||
Share $share,
|
||||
): ShareResource {
|
||||
// Update sharing record
|
||||
): JsonResponse {
|
||||
$item = get_item($share->type, $share->item_id);
|
||||
|
||||
// If sharing folder, check permission attribute
|
||||
if ($item instanceof Folder && $request->missing('permission')) {
|
||||
return response()->json([
|
||||
'type' => 'error',
|
||||
'message' => 'The permission field for folder is required.',
|
||||
], 422);
|
||||
}
|
||||
|
||||
$share->update([
|
||||
'permission' => $request->input('permission'),
|
||||
'is_protected' => $request->input('protected'),
|
||||
'expire_in' => $request->input('expiration') ?? null,
|
||||
'password' => $request->input('password')
|
||||
'permission' => $request->input('permission'),
|
||||
'is_protected' => $request->boolean('protected'),
|
||||
'password' => $request->has('password')
|
||||
? bcrypt($request->input('password'))
|
||||
: $share->password,
|
||||
]);
|
||||
|
||||
// Return shared record
|
||||
return new ShareResource($share);
|
||||
return response()->json(new ShareResource($share));
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete sharing item
|
||||
*/
|
||||
public function destroy(): Response
|
||||
public function destroy(RevokeSharesRequest $request): JsonResponse
|
||||
{
|
||||
foreach (request()->input('tokens') as $token) {
|
||||
foreach ($request->input('tokens') as $token) {
|
||||
// Delete share record
|
||||
Share::where('token', $token)
|
||||
$record = Share::where('token', $token)
|
||||
->where('user_id', Auth::id())
|
||||
->firstOrFail()
|
||||
->delete();
|
||||
->first();
|
||||
|
||||
$record?->delete();
|
||||
}
|
||||
|
||||
return response('Done.', 204);
|
||||
return response()->json([
|
||||
'type' => 'success',
|
||||
'message' => 'The share links was revoked successfully.',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
namespace Domain\Sharing\Controllers;
|
||||
|
||||
use Auth;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Domain\Sharing\Requests\ShareByEmailRequest;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Sharing\Actions\SendViaEmailAction;
|
||||
|
||||
@@ -15,15 +15,18 @@ class ShareViaEmailController extends Controller
|
||||
}
|
||||
|
||||
public function __invoke(
|
||||
Request $request,
|
||||
ShareByEmailRequest $request,
|
||||
string $token,
|
||||
): Response {
|
||||
): JsonResponse {
|
||||
($this->sendLinkToEmailAction)->onQueue()->execute(
|
||||
emails: $request->input('emails'),
|
||||
token: $token,
|
||||
user: Auth::user(),
|
||||
);
|
||||
|
||||
return response('Done.', 204);
|
||||
return response()->json([
|
||||
'type' => 'success',
|
||||
'message' => 'The share link was shared via email successfully.',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
30
src/Domain/Sharing/Requests/RevokeSharesRequest.php
Normal file
30
src/Domain/Sharing/Requests/RevokeSharesRequest.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
namespace Domain\Sharing\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class RevokeSharesRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'tokens' => 'required|array',
|
||||
'tokens.*' => 'string',
|
||||
];
|
||||
}
|
||||
}
|
||||
31
src/Domain/Sharing/Requests/ShareByEmailRequest.php
Normal file
31
src/Domain/Sharing/Requests/ShareByEmailRequest.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
namespace Domain\Sharing\Requests;
|
||||
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class ShareByEmailRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'emails' => 'required|array',
|
||||
'emails.*' => 'email',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
<?php
|
||||
namespace Domain\Sharing\Requests;
|
||||
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class UpdateShareRequest extends FormRequest
|
||||
@@ -13,7 +12,7 @@ class UpdateShareRequest extends FormRequest
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return Auth::check();
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -25,9 +24,9 @@ class UpdateShareRequest extends FormRequest
|
||||
{
|
||||
return [
|
||||
'protected' => 'required|boolean',
|
||||
'permission' => 'nullable|string',
|
||||
'expiration' => 'integer|nullable',
|
||||
'password' => 'string',
|
||||
'password' => 'required_if:protected,true|string',
|
||||
'permission' => 'sometimes|string',
|
||||
'expiration' => 'sometimes|integer',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user