Пример #1
0
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id, Request $request)
 {
     //$this->validate($request, ['name' => 'required']); // Uncomment and modify if needed.
     $app = App::findOrFail($id);
     $app->update($request->all());
     return redirect('admin/apps')->with('success', Lang::get('message.success.update'));
 }
 private function start($message, $tg)
 {
     $key = trim(str_replace('/start', '', $message['text']));
     $token = Token::findByToken($key);
     $app = App::findOrFail($token->app_id);
     try {
         $auth = Auth::findByAppAndTelegramUser($app, $tg);
     } catch (ModelNotFoundException $e) {
         $auth = new Auth();
         $auth->app_id = $app->id;
         $auth->telegram_user_id = $tg->id;
         $auth->email = 'a' . $app->id . 't' . $tg->id . '-' . generate_email() . '@telegramlogin.com';
     }
     $auth->access_token = generate_access_token();
     $auth->active = true;
     $auth->save();
     $code = Code::create(array('app_id' => $app->id, 'auth_id' => $auth->id, 'code' => generate_code()));
     $url = $app->redirect_url . '?code=' . $code->code;
     if ($token->query_string) {
         $url .= '&' . $token->query_string;
     }
     $text = 'Please click this link to finish your signup at *' . $app->name . '*: ' . PHP_EOL;
     $text .= '[Click here](' . $url . ')';
     $params = array('text' => $text, 'chat_id' => $tg->telegram_id);
     $this->send($params);
     $token->delete();
     if ($app->client_id == 314159265) {
         $tg->status = str_replace('state=', '', $token->query_string);
     } else {
         $tg->status = 'access_granted';
     }
     $tg->save();
 }
Пример #3
0
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Requests\AppRequest $request, $id)
 {
     $app = App::findOrFail($id);
     $app->fill($request->all());
     $app->save();
     return redirect('dashboard');
 }
Пример #4
0
 private function start($message)
 {
     $key = trim(str_replace('/start', '', $message['text']));
     $token = Token::findByToken($key);
     $app = App::findOrFail($token->app_id);
     $from = $message['from'];
     $telegramId = $from['id'];
     $telegramName = $from['first_name'];
     if (array_key_exists('last_name', $from)) {
         $telegramName .= ' ' . $from['last_name'];
     }
     if (array_key_exists('username', $from)) {
         $username = $from['username'];
     }
     try {
         $tg = TelegramUser::findByTelegramId($telegramId);
     } catch (ModelNotFoundException $e) {
         $tg = new TelegramUser();
         $tg->telegram_id = $telegramId;
     }
     $tg->name = $telegramName;
     $tg->save();
     if ($tg->status != '/start') {
         $tg->status = '/start';
         $tg->save();
         if (isset($username)) {
             $tg->username = $username;
         }
         try {
             $auth = Auth::findByAppAndTelegramUser($app, $tg);
         } catch (ModelNotFoundException $e) {
             $auth = new Auth();
             $auth->app_id = $app->id;
             $auth->telegram_user_id = $tg->id;
             $auth->email = generate_email() . '-' . $app->id . '-' . $tg->id . '@telegramlogin.com';
         }
         $auth->access_token = generate_access_token();
         $auth->active = true;
         $auth->save();
         $code = Code::create(array('app_id' => $app->id, 'auth_id' => $auth->id, 'code' => generate_code()));
         $url = $app->redirect_url . '?code=' . $code->code;
         if ($token->query_string) {
             $url .= '&' . $token->query_string;
         }
         $text = 'Please click this link to finish your signup at *' . $app->name . '*: ' . PHP_EOL;
         $text .= '[Click here](' . $url . ')';
         $params = array('text' => $text, 'chat_id' => $telegramId);
         $success = false;
         $trys = 0;
         while (!$success && $trys < 5) {
             $success = $this->send($params)['ok'];
             sleep(1);
             $trys++;
         }
         $token->delete();
         if ($app->client_id == 314159265) {
             $tg->status = str_replace('state=', '', $token->query_string);
         } else {
             $tg->status = 'access_granted';
         }
         $tg->save();
     }
 }