mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-27 18:40:39 +00:00
Delete client
This commit is contained in:
@@ -66,4 +66,17 @@ class ClientController extends Controller
|
||||
new OasisClientResource($client), 201
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Client $client
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function destroy(Client $client)
|
||||
{
|
||||
if ($client->user_id === Auth::id()) {
|
||||
$client->delete();
|
||||
|
||||
return response('Done', 204);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,8 +78,14 @@ class Client extends Model
|
||||
{
|
||||
parent::boot();
|
||||
|
||||
static::creating(function ($order) {
|
||||
$order->id = (string) Str::uuid();
|
||||
static::creating(function ($client) {
|
||||
$client->id = (string) Str::uuid();
|
||||
});
|
||||
|
||||
static::deleting(function ($client) {
|
||||
if ($client->getRawOriginal('avatar')) {
|
||||
Storage::delete($client->getRawOriginal('avatar'));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +42,7 @@ Route::group(['middleware' => 'api', 'prefix' => '/api/oasis'], function () {
|
||||
Route::get('/search', [ClientController::class, 'search']);
|
||||
|
||||
Route::post('/', [ClientController::class, 'store']);
|
||||
Route::delete('/{client}', [ClientController::class, 'destroy']);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -99,6 +99,36 @@ class OasisClientTest extends TestCase
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function user_delete_client()
|
||||
{
|
||||
Storage::fake('local');
|
||||
|
||||
$user = User::factory(User::class)
|
||||
->create(['role' => 'user']);
|
||||
|
||||
Sanctum::actingAs($user);
|
||||
|
||||
$avatar = UploadedFile::fake()
|
||||
->image('fake-image.jpg');
|
||||
|
||||
Storage::putFileAs('avatar', $avatar, 'fake-image.jpg');
|
||||
|
||||
$client = Client::factory(Client::class)
|
||||
->create([
|
||||
'avatar' => 'avatar/fake-image.jpg',
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
$this->deleteJson("/api/oasis/clients/$client->id")
|
||||
->assertStatus(204);
|
||||
|
||||
Storage::disk('local')
|
||||
->assertMissing('avatar/fake-image.jpg');
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user