diff --git a/app/Models/AccountToken.php b/app/Models/AccountToken.php index dace5f00b..c68dde714 100644 --- a/app/Models/AccountToken.php +++ b/app/Models/AccountToken.php @@ -3,6 +3,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\SoftDeletes; +use App\Models\LookupToken; /** * Class AccountToken. @@ -39,3 +40,10 @@ class AccountToken extends EntityModel return $this->belongsTo('App\Models\User')->withTrashed(); } } + +AccountToken::creating(function ($token) +{ + LookupToken::createNew($token->account->account_key, [ + 'token' => $token->token, + ]); +}); diff --git a/app/Models/Contact.php b/app/Models/Contact.php index ef826e337..fe3547f99 100644 --- a/app/Models/Contact.php +++ b/app/Models/Contact.php @@ -8,6 +8,7 @@ use Illuminate\Auth\Passwords\CanResetPassword; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract; use Illuminate\Database\Eloquent\SoftDeletes; +use App\Models\LookupContact; /** * Class Contact. @@ -165,3 +166,10 @@ class Contact extends EntityModel implements AuthenticatableContract, CanResetPa return "{$url}/client/dashboard/{$this->contact_key}"; } } + +Contact::creating(function ($contact) +{ + LookupContact::createNew($contact->account->account_key, [ + 'contact_key' => $contact->contact_key, + ]); +}); diff --git a/app/Models/Invitation.php b/app/Models/Invitation.php index 7797eed65..a33785af4 100644 --- a/app/Models/Invitation.php +++ b/app/Models/Invitation.php @@ -5,6 +5,7 @@ namespace App\Models; use Carbon; use Illuminate\Database\Eloquent\SoftDeletes; use Utils; +use App\Models\LookupInvitation; /** * Class Invitation. @@ -162,3 +163,10 @@ class Invitation extends EntityModel return sprintf('

%s: %s', $this->signature_base64, trans('texts.signed'), Utils::fromSqlDateTime($this->signature_date)); } } + +Invitation::creating(function ($invitation) +{ + LookupInvitation::createNew($invitation->account->account_key, [ + 'invitation_key' => $invitation->invitation_key, + ]); +}); diff --git a/app/Models/LookupAccount.php b/app/Models/LookupAccount.php index cb9f3a672..935c3f642 100644 --- a/app/Models/LookupAccount.php +++ b/app/Models/LookupAccount.php @@ -7,13 +7,8 @@ use Eloquent; /** * Class ExpenseCategory. */ -class LookupAccount extends Eloquent +class LookupAccount extends LookupModel { - /** - * @var bool - */ - public $timestamps = false; - /** * @var array */ diff --git a/app/Models/LookupCompany.php b/app/Models/LookupCompany.php index 0e8a32120..dd0707524 100644 --- a/app/Models/LookupCompany.php +++ b/app/Models/LookupCompany.php @@ -7,13 +7,8 @@ use Eloquent; /** * Class ExpenseCategory. */ -class LookupCompany extends Eloquent +class LookupCompany extends LookupModel { - /** - * @var bool - */ - public $timestamps = false; - /** * @var array */ diff --git a/app/Models/LookupContact.php b/app/Models/LookupContact.php index 025ba3e3b..2caf8c6ca 100644 --- a/app/Models/LookupContact.php +++ b/app/Models/LookupContact.php @@ -7,13 +7,8 @@ use Eloquent; /** * Class ExpenseCategory. */ -class LookupContact extends Eloquent +class LookupContact extends LookupModel { - /** - * @var bool - */ - public $timestamps = false; - /** * @var array */ diff --git a/app/Models/LookupInvitation.php b/app/Models/LookupInvitation.php index ebf9f1a4f..7829a5c9a 100644 --- a/app/Models/LookupInvitation.php +++ b/app/Models/LookupInvitation.php @@ -7,13 +7,8 @@ use Eloquent; /** * Class ExpenseCategory. */ -class LookupInvitation extends Eloquent +class LookupInvitation extends LookupModel { - /** - * @var bool - */ - public $timestamps = false; - /** * @var array */ diff --git a/app/Models/LookupModel.php b/app/Models/LookupModel.php new file mode 100644 index 000000000..914be6c15 --- /dev/null +++ b/app/Models/LookupModel.php @@ -0,0 +1,39 @@ + DB_NINJA_LOOKUP]); + + $lookupAccount = LookupAccount::whereAccountKey($accountKey)->first(); + + if ($lookupAccount) { + $data['lookup_account_id'] = $lookupAccount->id; + } else { + abort('Lookup account not found for ' . $accountKey); + } + + static::create($data); + + config(['database.default' => $current]); + } +} diff --git a/app/Models/LookupToken.php b/app/Models/LookupToken.php index ed7294732..a0b53514c 100644 --- a/app/Models/LookupToken.php +++ b/app/Models/LookupToken.php @@ -7,13 +7,8 @@ use Eloquent; /** * Class ExpenseCategory. */ -class LookupToken extends Eloquent +class LookupToken extends LookupModel { - /** - * @var bool - */ - public $timestamps = false; - /** * @var array */ diff --git a/app/Models/LookupUser.php b/app/Models/LookupUser.php index e5820c57d..33530bd2b 100644 --- a/app/Models/LookupUser.php +++ b/app/Models/LookupUser.php @@ -7,13 +7,8 @@ use Eloquent; /** * Class ExpenseCategory. */ -class LookupUser extends Eloquent +class LookupUser extends LookupModel { - /** - * @var bool - */ - public $timestamps = false; - /** * @var array */ diff --git a/app/Models/User.php b/app/Models/User.php index 240234d87..2474ce2d4 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -10,6 +10,7 @@ use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; use Laracasts\Presenter\PresentableTrait; use Session; +use App\Models\LookupUser; /** * Class User. @@ -412,6 +413,17 @@ class User extends Authenticatable } } +User::creating(function ($user) +{ + if (! $user->registered) { + return; + } + + LookupUser::createNew($user->account->account_key, [ + 'email' => $user->email, + ]); +}); + User::updating(function ($user) { User::onUpdatingUser($user); });