Add export feature to the Edit mode - Complete #100

This commit is contained in:
Bubka
2022-12-13 15:57:33 +01:00
parent 2d706e61b7
commit 88195a6afb
9 changed files with 153 additions and 13 deletions

View File

@ -10,6 +10,7 @@ use App\Api\v1\Requests\TwoFAccountStoreRequest;
use App\Api\v1\Requests\TwoFAccountUpdateRequest;
use App\Api\v1\Requests\TwoFAccountUriRequest;
use App\Api\v1\Resources\TwoFAccountCollection;
use App\Api\v1\Resources\TwoFAccountExportCollection;
use App\Api\v1\Resources\TwoFAccountReadResource;
use App\Api\v1\Resources\TwoFAccountStoreResource;
use App\Facades\Groups;
@ -70,8 +71,8 @@ class TwoFAccountController extends Controller
Groups::assign($twofaccount->id);
return (new TwoFAccountReadResource($twofaccount->refresh()))
->response()
->setStatusCode(201);
->response()
->setStatusCode(201);
}
/**
@ -89,8 +90,8 @@ class TwoFAccountController extends Controller
$twofaccount->save();
return (new TwoFAccountReadResource($twofaccount))
->response()
->setStatusCode(200);
->response()
->setStatusCode(200);
}
/**
@ -143,6 +144,26 @@ class TwoFAccountController extends Controller
return new TwoFAccountStoreResource($twofaccount);
}
/**
* Export accounts
*
* @param \App\Api\v1\Requests\TwoFAccountBatchRequest $request
* @return TwoFAccountExportCollection|\Illuminate\Http\JsonResponse
*/
public function export(TwoFAccountBatchRequest $request)
{
$validated = $request->validated();
if ($this->tooManyIds($validated['ids'])) {
return response()->json([
'message' => 'bad request',
'reason' => [__('errors.too_many_ids')],
], 400);
}
return new TwoFAccountExportCollection(TwoFAccounts::export($validated['ids']));
}
/**
* Get a One-Time Password
*