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);
});