mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-03 22:47:32 -05: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;
 | 
			
		||||
@ -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