mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Delete push token (#1737)
* Remove push notification token when a user logs out * bug * logging * json encode array values only * use Token as Key instead of email * fix duplicate tokens appearing * refactor get User Accounts from API * refactor get User Accounts from API
This commit is contained in:
parent
51a16de01b
commit
7934707b9b
@ -16,6 +16,7 @@ use Auth;
|
||||
use Cache;
|
||||
use Exception;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Response;
|
||||
use Socialite;
|
||||
use Utils;
|
||||
@ -91,7 +92,7 @@ class AccountApiController extends BaseAPIController
|
||||
|
||||
return $this->response($data);
|
||||
}
|
||||
|
||||
|
||||
public function show(Request $request)
|
||||
{
|
||||
$account = Auth::user()->account;
|
||||
@ -118,7 +119,13 @@ class AccountApiController extends BaseAPIController
|
||||
|
||||
public function getUserAccounts(Request $request)
|
||||
{
|
||||
return $this->processLogin($request);
|
||||
$user = Auth::user();
|
||||
|
||||
$users = $this->accountRepo->findUsers($user, 'account.account_tokens');
|
||||
$transformer = new UserAccountTransformer($user->account, $request->serializer, $request->token_name);
|
||||
$data = $this->createCollection($users, $transformer, 'user_account');
|
||||
|
||||
return $this->response($data);
|
||||
}
|
||||
|
||||
public function update(UpdateAccountRequest $request)
|
||||
@ -140,7 +147,7 @@ class AccountApiController extends BaseAPIController
|
||||
$devices = json_decode($account->devices, true);
|
||||
|
||||
for ($x = 0; $x < count($devices); $x++) {
|
||||
if ($devices[$x]['email'] == Auth::user()->username) {
|
||||
if ($devices[$x]['email'] == $request->email) {
|
||||
$devices[$x]['token'] = $request->token; //update
|
||||
$devices[$x]['device'] = $request->device;
|
||||
$account->devices = json_encode($devices);
|
||||
@ -171,6 +178,26 @@ class AccountApiController extends BaseAPIController
|
||||
return $this->response($newDevice);
|
||||
}
|
||||
|
||||
public function removeDeviceToken(Request $request) {
|
||||
|
||||
$account = Auth::user()->account;
|
||||
|
||||
$devices = json_decode($account->devices, true);
|
||||
|
||||
foreach($devices as $key => $value)
|
||||
{
|
||||
|
||||
if($request->token == $value['token'])
|
||||
unset($devices[$key]);
|
||||
|
||||
}
|
||||
|
||||
$account->devices = json_encode(array_values($devices));
|
||||
$account->save();
|
||||
|
||||
return $this->response(['success']);
|
||||
}
|
||||
|
||||
public function updatePushNotifications(Request $request)
|
||||
{
|
||||
$account = Auth::user()->account;
|
||||
|
@ -356,6 +356,7 @@ Route::group(['middleware' => ['lookup:api', 'api'], 'prefix' => 'api/v1'], func
|
||||
Route::resource('users', 'UserApiController');
|
||||
Route::resource('expenses', 'ExpenseApiController');
|
||||
Route::post('add_token', 'AccountApiController@addDeviceToken');
|
||||
Route::post('remove_token', 'AccountApiController@removeDeviceToken');
|
||||
Route::post('update_notifications', 'AccountApiController@updatePushNotifications');
|
||||
Route::get('dashboard', 'DashboardApiController@index');
|
||||
Route::resource('documents', 'DocumentAPIController');
|
||||
|
Loading…
x
Reference in New Issue
Block a user