Add DELETE /api/v1.1/accounts/avatar api endpoint

pull/3554/head^2
Daniel Supernault 2022-08-02 00:57:46 -06:00
rodzic 102baa517e
commit 5ea12601ce
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 0DEF1C662C9033F7
2 zmienionych plików z 39 dodań i 0 usunięć

Wyświetl plik

@ -2,6 +2,7 @@
namespace App\Http\Controllers\Api;
use Cache;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use League\Fractal;
@ -10,6 +11,7 @@ use League\Fractal\Pagination\IlluminatePaginatorAdapter;
use App\Status;
use App\Report;
use App\Profile;
use App\Services\AccountService;
class ApiV1Dot1Controller extends Controller
{
@ -128,4 +130,40 @@ class ApiV1Dot1Controller extends Controller
];
return $this->json($res);
}
/**
* DELETE /api/v1.1/accounts/avatar
*
* @return \App\Transformer\Api\AccountTransformer
*/
public function deleteAvatar(Request $request)
{
$user = $request->user();
abort_if(!$user, 403);
abort_if($user->status != null, 403);
$avatar = $user->profile->avatar;
if( $avatar->media_path == 'public/avatars/default.png' ||
$avatar->media_path == 'public/avatars/default.jpg'
) {
return AccountService::get($user->profile_id);
}
if(is_file(storage_path('app/' . $avatar->media_path))) {
@unlink(storage_path('app/' . $avatar->media_path));
}
$avatar->media_path = 'public/avatars/default.jpg';
$avatar->change_count = $avatar->change_count + 1;
$avatar->save();
Cache::forget('avatar:' . $user->profile_id);
Cache::forget("avatar:{$user->profile_id}");
Cache::forget('user:account:id:'.$user->id);
AccountService::del($user->profile_id);
return AccountService::get($user->profile_id);
}
}

Wyświetl plik

@ -99,6 +99,7 @@ Route::group(['prefix' => 'api'], function() use($middleware) {
Route::group(['prefix' => 'v1.1'], function() use($middleware) {
Route::post('report', 'Api\ApiV1Dot1Controller@report')->middleware($middleware);
Route::delete('accounts/avatar', 'Api\ApiV1Dot1Controller@deleteAvatar')->middleware($middleware);
});
Route::group(['prefix' => 'live'], function() use($middleware) {