Skip to content

Commit 52cbf1f

Browse files
authored
Merge pull request #2 from jonasdt/improvements
Improvements
2 parents 21f2a6f + 1be5a57 commit 52cbf1f

File tree

6 files changed

+38
-28
lines changed

6 files changed

+38
-28
lines changed

config/mailium-oauth.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
| App credentails
1010
*/
1111

12+
'app_id' => env('MAILIUM_APP_ID', ''),
1213
'client_id' => env('MAILIUM_APP_CLIENT_ID', ''),
1314
'client_secret' => env('MAILIUM_APP_CLIENT_SECRET', ''),
1415

@@ -35,4 +36,12 @@
3536
|
3637
*/
3738
'app_type' => env('MAILIUM_APP_TYPE', 'embedded'),
39+
40+
/*
41+
|--------------------------------------------------------------------------
42+
| Eloquent model
43+
|--------------------------------------------------------------------------
44+
|
45+
*/
46+
'model' => \MailiumOauthClient\MailiumOauthClientLaravel\MailiumAppAuthenticatable::class,
3847
];

http/routes.php

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
use Illuminate\Http\Request;
44
use MailiumOauthClient\MailiumOauthClientLaravel\MailiumAppUninstallEvent;
5-
use MailiumOauthClient\MailiumOauthClientLaravel\MailiumAppUser;
5+
use MailiumOauthClient\MailiumOauthClientLaravel\MailiumAppAuthenticatable;
66
use MailiumOauthClient\MailiumOauthClientLaravel\MailiumOauthClientMiddleware;
77

88
Route::post('/uninstall', ['middleware' => [
@@ -12,14 +12,16 @@
1212
\MailiumOauthClient\MailiumOauthClientLaravel\MailiumOauthClientMiddleware::class
1313
], function(Request $request) {
1414
// Get current user from the request
15-
/** @var MailiumAppUser $user */
15+
/** @var MailiumAppAuthenticatable $user */
1616
$user = $request->attributes->get('mailium_app_user');
1717

18-
// Delete user from database;
19-
$user->delete();
20-
2118
// Fire uninstall event
22-
Event::fire(new MailiumAppUninstallEvent($user->accid));
19+
Event::fire(new MailiumAppUninstallEvent($user));
20+
21+
// Delete user from database;
22+
if ($user->exists) {
23+
$user->delete();
24+
}
2325

2426
return response()->json([], 200);
2527
}])->name('mailium_app_uninstall');

src/MailiumOauthClient/MailiumOauthClientLaravel/MailiumAppUser.php renamed to src/MailiumOauthClient/MailiumOauthClientLaravel/MailiumAppAuthenticatable.php

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
use Illuminate\Database\Eloquent\Model;
44

55
/**
6-
* Class MailiumAppUser
6+
* Class MailiumAppAuthenticatable
77
* @package MailiumOauthClient\MailiumOauthClientLaravel
88
* @property string $accid
99
* @property array $oauth_tokens
1010
*/
11-
class MailiumAppUser extends Model
11+
class MailiumAppAuthenticatable extends Model
1212
{
1313

1414
# ---------------------------------------------------------------------------------------------- Eloquent Attributes
@@ -19,14 +19,6 @@ class MailiumAppUser extends Model
1919
*/
2020
protected $table = 'mailium_app_users';
2121

22-
/**
23-
* The database columns used by the model.
24-
*
25-
* @var array
26-
*/
27-
protected $columns = ['id', 'accid', 'oauth_tokens', 'created_at', 'updated_at'];
28-
29-
3022
/**
3123
* The attributes that are mass assignable.
3224
*
@@ -79,7 +71,7 @@ public static function createUser($accId)
7971
{
8072
$appUser = static::getByAccId($accId);
8173
if (is_null($appUser)) {
82-
$appUser = new MailiumAppUser();
74+
$appUser = new static();
8375
$appUser->accid = $accId;
8476
$appUser->oauth_tokens = new \stdClass();
8577
$appUser->save();
@@ -110,7 +102,7 @@ public static function saveOauthToken($resourceOwner, $oauthTokens)
110102
{
111103
$appUser = static::getByAccId($resourceOwner->acc_id);
112104
if (is_null($appUser)) {
113-
$appUser = new MailiumAppUser();
105+
$appUser = new static();
114106
$appUser->accid = $resourceOwner->acc_id;
115107
}
116108
$appUser->oauth_tokens = $oauthTokens;

src/MailiumOauthClient/MailiumOauthClientLaravel/MailiumAppUninstallEvent.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
class MailiumAppUninstallEvent
66
{
77
/**
8-
* @var string ID of the account that the app is uninstalled from
8+
* @var MailiumAppAuthenticatable the account that the app is uninstalled from
99
*/
1010
public $account;
1111

1212
/**
1313
* MailiumAppUninstallEvent constructor.
14-
* @param string $account
14+
* @param MailiumAppAuthenticatable $account
1515
*/
1616
public function __construct($account)
1717
{

src/MailiumOauthClient/MailiumOauthClientLaravel/MailiumOauthClientMiddleware.php

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22

33
use Closure;
44
use Illuminate\Http\Request;
5-
use Auth;
65
use MailiumOauthClient\MailiumOauthClient;
76
use MailiumOauthClient\MailiumOauthClientLaravel;
8-
use MailiumOauthClient\MailiumOauthClientLaravel\MailiumAppUser;
97
use Mailium\API\MailiumAPI3;
8+
109
class MailiumOauthClientMiddleware
1110
{
1211
const VERSION = '1.0.30';
@@ -16,7 +15,14 @@ class MailiumOauthClientMiddleware
1615
protected $mailiumOauthClient;
1716

1817
/**
19-
* @var \MailiumOauthClient\MailiumOauthClientLaravel\MailiumAppUser
18+
* The Eloquent user model.
19+
*
20+
* @var string
21+
*/
22+
protected $model;
23+
24+
/**
25+
* @var \MailiumOauthClient\MailiumOauthClientLaravel\MailiumAppAuthenticatable
2026
*/
2127
protected $user;
2228

@@ -36,6 +42,8 @@ public function __construct(MailiumOauthClient $mailiumOauthClient)
3642
{
3743
$this->mailiumOauthClient = $mailiumOauthClient;
3844

45+
$this->model = config('mailium-oauth.model');
46+
3947
$this->request = new \stdClass();
4048

4149
$this->session = new \stdClass();
@@ -86,7 +94,7 @@ public function handle(Request $request, Closure $next)
8694
if ($this->request->authorizationState == $this->session->authorizationState) {
8795
// Get access token
8896
$this->mailiumOauthClient->authorize($this->request->authorizationCode);
89-
$this->user = MailiumAppUser::getByAccId($this->request->accId);
97+
$this->user = call_user_func([$this->model, 'getByAccId'], $this->request->accId);
9098

9199
$this->mailium_app_just_installed = true;
92100
$request->session()->forget('mailium_authorization_state');
@@ -143,11 +151,11 @@ public function handle(Request $request, Closure $next)
143151

144152
protected function setUser($accId)
145153
{
146-
$this->user = MailiumAppUser::getByAccId($accId);
154+
$this->user = call_user_func([$this->model, 'getByAccId'], $accId);
147155
if ($this->user) {
148156
$this->mailiumOauthClient->setToken($this->user->getOauthTokens());
149157
} else {
150-
$this->user = MailiumAppUser::createUser($accId);
158+
$this->user = call_user_func([$this->model, 'createUser'], $accId);
151159
}
152160
return $this->user;
153161
}

src/MailiumOauthClient/MailiumOauthClientLaravel/MailiumOauthClientServiceProvider.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
use Illuminate\Foundation\Application as LaravelApplication;
44
use Illuminate\Support\ServiceProvider;
55
use MailiumOauthClient\MailiumOauthClient;
6-
use MailiumOauthClient\MailiumOauthClientLaravel\MailiumAppUser;
76

87

98
class MailiumOauthClientServiceProvider extends ServiceProvider
@@ -46,7 +45,7 @@ public function register()
4645
$oauthClient->setClientID(config('mailium-oauth.client_id'));
4746
$oauthClient->setClientSecret(config('mailium-oauth.client_secret'));
4847
$oauthClient->setScopes(config('mailium-oauth.required_scopes'));
49-
$oauthClient->setTokenStoreCallbackFunction('MailiumOauthClient\MailiumOauthClientLaravel\MailiumAppUser::saveOauthToken');
48+
$oauthClient->setTokenStoreCallbackFunction(config('mailium-oauth.model') . '::saveOauthToken');
5049
$oauthClient->setRedirectUri(config('mailium-oauth.redirect_uri'));
5150
$oauthClient->setAppType(config('mailium-oauth.app_type'));
5251

0 commit comments

Comments
 (0)