diff --git a/src/Base.php b/src/Base.php index 529396a..bdce5fe 100644 --- a/src/Base.php +++ b/src/Base.php @@ -6,10 +6,10 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; use Slack\Models\{Channel,Enterprise,Team,User}; -use App\Models\Channel as AppChannel; -use App\Models\Enterprise as AppEnterprise; -use App\Models\Team as AppTeam; -use App\Models\User as AppUser; +use App\Models\Slack\Channel as AppChannel; +use App\Models\Slack\Enterprise as AppEnterprise; +use App\Models\Slack\Team as AppTeam; +use App\Models\Slack\User as AppUser; /** * Class Base - is a Base to all incoming Slack POST requests diff --git a/src/Http/Controllers/SlackAppController.php b/src/Http/Controllers/SlackAppController.php index 9f33ce7..6211cf6 100644 --- a/src/Http/Controllers/SlackAppController.php +++ b/src/Http/Controllers/SlackAppController.php @@ -11,6 +11,10 @@ use Slack\Jobs\TeamUpdate; use Slack\Models\{Enterprise,Team,Token,User}; use App\Http\Controllers\Controller; +use App\Models\Slack\Channel as AppChannel; +use App\Models\Slack\Enterprise as AppEnterprise; +use App\Models\Slack\Team as AppTeam; +use App\Models\Slack\User as AppUser; class SlackAppController extends Controller { @@ -84,10 +88,8 @@ class SlackAppController extends Controller $eo = NULL; if ($output->enterprise) { - $eo = Enterprise::firstOrNew( - [ - 'enterprise_id'=>$output->enterprise->id - ]); + $eo = (class_exists(AppEnterprise::class) ? new AppEnterprise : new Enterprise) + ->firstOrNew(['enterprise_id'=>$output->enterprise->id]); $eo->name = $output->enterprise->name; $eo->active = TRUE; @@ -95,10 +97,8 @@ class SlackAppController extends Controller } // Store our team details - $so = Team::firstOrNew( - [ - 'team_id'=>$output->team->id - ]); + $so = (class_exists(AppTeam::class) ? new AppTeam : new Team) + ->firstOrNew(['team_id'=>$output->team->id]); // We just installed, so we'll make it active, even if it already exists. $so->description = $output->team->name; @@ -112,7 +112,7 @@ class SlackAppController extends Controller $to = $so->token; if (! $to) { - $to = new Token; + $to = class_exists(AppToken::class) ? new AppToken : new Token; $to->description = 'App: Oauth'; } @@ -125,10 +125,9 @@ class SlackAppController extends Controller // Create the bot user // Store the user who install, and make them admin - $bo = User::firstOrNew( - [ - 'user_id'=>$output->bot_user_id, - ]); + $bo = (class_exists(AppUser::class) ? new AppUser : new User) + ->firstOrNew(['user_id'=>$output->bot_user_id]); + $bo->enterprise_id = $eo ? $eo->id : NULL; $bo->team_id = $so->id; $bo->active = 0; @@ -141,10 +140,8 @@ class SlackAppController extends Controller Log::debug(sprintf('%s:BOT Created [%s]',self::LOGKEY,$bo->id),['m'=>__METHOD__]); // Store the user who install, and make them admin - $uo = User::firstOrNew( - [ - 'user_id'=>$output->authed_user->id, - ]); + $uo = (class_exists(AppUser::class) ? new AppUser : new User) + ->firstOrNew(['user_id'=>$output->authed_user->id]); $uo->enterprise_id = $eo ? $eo->id : NULL; $uo->team_id = $eo ? NULL : $so->id; diff --git a/src/Models/Channel.php b/src/Models/Channel.php index 469696c..5dff683 100644 --- a/src/Models/Channel.php +++ b/src/Models/Channel.php @@ -2,6 +2,8 @@ namespace Slack\Models; +use App\Models\Slack\Team as AppTeam; + use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Arr; use Slack\Traits\ScopeActive; @@ -16,7 +18,7 @@ class Channel extends Model public function team() { - return $this->belongsTo(Team::class); + return $this->belongsTo(class_exists(AppTeam::class) ? AppTeam::class : Team::class); } /* ATTRIBUTES */ @@ -71,4 +73,4 @@ class Channel extends Model return sprintf('https://%s/archives/%s/p%s',$this->team->url,$this->channel_id,str_replace('.','',$ts)); } -} +} \ No newline at end of file diff --git a/src/Models/Enterprise.php b/src/Models/Enterprise.php index fc057c8..3d2ae1c 100644 --- a/src/Models/Enterprise.php +++ b/src/Models/Enterprise.php @@ -2,6 +2,8 @@ namespace Slack\Models; +use App\Models\Slack\Team as AppTeam; + use Illuminate\Database\Eloquent\Model; use Slack\Traits\ScopeActive; @@ -15,6 +17,6 @@ class Enterprise extends Model public function teams() { - return $this->hasMany(Team::class); + return $this->hasMany(class_exists(AppTeam::class) ? AppTeam::class : Team::class); } -} +} \ No newline at end of file diff --git a/src/Models/Team.php b/src/Models/Team.php index 6d9d9d3..a703ef6 100644 --- a/src/Models/Team.php +++ b/src/Models/Team.php @@ -2,6 +2,10 @@ namespace Slack\Models; +use App\Models\Slack\Channel as AppChannel; +use App\Models\Slack\Token as AppToken; +use App\Models\Slack\User as AppUser; + use Illuminate\Database\Eloquent\Model; use Slack\API; use Slack\Traits\ScopeActive; @@ -16,34 +20,34 @@ class Team extends Model public function admins() { - return $this->hasMany(User::class,'team_id','id')->where('admin','=',TRUE); + return $this->hasMany(class_exists(AppUser::class) ? AppUser::class : User::class,'team_id','id')->where('admin','=',TRUE); } public function bot() { - return $this->hasOne(User::class,'id','bot_id'); + return $this->hasOne(class_exists(AppUser::class) ? AppUser::class : User::class,'id','bot_id'); } public function channels() { - return $this->hasMany(Channel::class); + return $this->hasMany(class_exists(AppChannel::class) ? AppChannel::class : Channel::class); } public function owner() { - return $this->belongsTo(User::class,'admin_id'); + return $this->belongsTo(class_exists(AppUser::class) ? AppUser::class : User::class,'admin_id'); } // Tokens applicable to this team // @todo team_id can now be null, so we need to get it from the enterprise_id. public function token() { - return $this->hasOne(Token::class); + return $this->hasOne(class_exists(AppToken::class) ? AppToken::class : Token::class); } public function users() { - return $this->hasMany(User::class); + return $this->hasMany(class_exists(AppUser::class) ? AppUser::class : User::class); } /* ATTRIBUTES */ @@ -92,4 +96,4 @@ class Team extends Model { return new API($this); } -} +} \ No newline at end of file diff --git a/src/Models/Token.php b/src/Models/Token.php index 9dec68f..7dcb727 100644 --- a/src/Models/Token.php +++ b/src/Models/Token.php @@ -2,6 +2,8 @@ namespace Slack\Models; +use App\Models\Slack\Team as AppTeam; + use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Collection; use Slack\Traits\ScopeActive; @@ -14,7 +16,7 @@ class Token extends Model public function team() { - return $this->belongsTo(Team::class); + return $this->belongsTo(class_exists(AppTeam::class) ? AppTeam::class : Team::class); } /* ATTRIBUTES */ @@ -41,4 +43,4 @@ class Token extends Model { return ($scope AND ($this->getScopesAttribute()->search($scope) !== FALSE)); } -} +} \ No newline at end of file diff --git a/src/Models/User.php b/src/Models/User.php index 2f70ebd..720d87f 100644 --- a/src/Models/User.php +++ b/src/Models/User.php @@ -2,6 +2,9 @@ namespace Slack\Models; +use App\Models\Slack\Enterprise as AppEnterprise; +use App\Models\Slack\Team as AppTeam; + use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Log; use Slack\Traits\ScopeActive; @@ -18,12 +21,12 @@ class User extends Model public function enterprise() { - return $this->belongsTo(Enterprise::class); + return $this->belongsTo(class_exists(AppEnterprise::class) ? AppEnterprise::class : Enterprise::class); } public function team() { - return $this->belongsTo(Team::class); + return $this->belongsTo(class_exists(AppTeam::class) ? AppTeam::class : Team::class); } /* ATTRIBUTES */ diff --git a/src/config/slack.php b/src/config/slack.php index 67ddc12..4f257c0 100644 --- a/src/config/slack.php +++ b/src/config/slack.php @@ -8,5 +8,5 @@ return [ 'register_notification' => env('SLACK_REGISTER_NOTIFICATION',TRUE), // Our routes that we dont check for signatures - 'bypass_routes' => ['/','slack-install-button','slack-install'], + 'bypass_routes' => ['slack','slack/install','slack/install/button'], ]; diff --git a/src/routes.php b/src/routes.php index 08cfab2..4180e7d 100644 --- a/src/routes.php +++ b/src/routes.php @@ -6,17 +6,17 @@ $routeConfig = [ app('router') ->group($routeConfig, function ($router) { - $router->get('slack-install-button', [ + $router->get('slack/install/button', [ 'uses' => 'SlackAppController@button', 'as' => 'slack-install-button', ]); - $router->get('slack-install', [ + $router->get('slack/install', [ 'uses' => 'SlackAppController@install', 'as' => 'slack-install', ]); - $router->get('', [ + $router->get('slack', [ 'uses' => 'SlackAppController@home', 'as' => 'home', ]); @@ -24,18 +24,18 @@ app('router') app('router') ->group(array_merge($routeConfig,['prefix'=>'api']), function ($router) { - $router->post('event', [ + $router->post('slack/event', [ 'uses' => 'EventsController@fire', 'as' => 'event', ]); - $router->post('imsg', [ + $router->post('slack/imsg', [ 'uses' => 'InteractiveMessageController@fire', 'as' => 'imsg', ]); - $router->post('imsgopt', [ + $router->post('slack/imsgopt', [ 'uses' => 'InteractiveOptionsController@fire', 'as' => 'imsgopt', ]); - }); \ No newline at end of file + });