public function __construct($state, $data) { $this->invoiceRepo = app('App\\Ninja\\Repositories\\InvoiceRepository'); parent::__construct($state, $data); }
public function handleMessage($platform) { $input = Input::all(); $botUserId = $input['from']['id']; if (!($token = $this->authenticate($input))) { return SkypeResponse::message(trans('texts.not_authorized')); } try { if ($input['type'] === 'contactRelationUpdate') { // brand new user, ask for their email if ($input['action'] === 'add') { $response = SkypeResponse::message(trans('texts.bot_get_email')); $state = BOT_STATE_GET_EMAIL; } elseif ($input['action'] === 'remove') { $this->removeBot($botUserId); $this->saveState($token, false); return RESULT_SUCCESS; } } else { $state = $this->loadState($token); $text = strip_tags($input['text']); // user gaves us their email if ($state === BOT_STATE_GET_EMAIL) { if ($this->validateEmail($text, $botUserId)) { $response = SkypeResponse::message(trans('texts.bot_get_code')); $state = BOT_STATE_GET_CODE; } else { $response = SkypeResponse::message(trans('texts.email_not_found', ['email' => $text])); } // user sent the scurity code } elseif ($state === BOT_STATE_GET_CODE) { if ($this->validateCode($text, $botUserId)) { $response = SkypeResponse::message(trans('texts.bot_welcome') . trans('texts.bot_help_message')); $state = BOT_STATE_READY; } else { $response = SkypeResponse::message(trans('texts.invalid_code')); } // regular chat message } else { if ($text === 'help') { $response = SkypeResponse::message(trans('texts.bot_help_message')); } elseif ($text == 'status') { $response = SkypeResponse::message(trans('texts.intent_not_supported')); } else { if (!($user = User::whereBotUserId($botUserId)->with('account')->first())) { return SkypeResponse::message(trans('texts.not_authorized')); } Auth::onceUsingId($user->id); $user->account->loadLocalizationSettings(); $data = $this->parseMessage($text); $intent = BaseIntent::createIntent($state, $data); $response = $intent->process(); $state = $intent->getState(); } } } $this->saveState($token, $state); } catch (Exception $exception) { $response = SkypeResponse::message($exception->getMessage()); } $this->sendResponse($token, $botUserId, $response); return RESULT_SUCCESS; }