public function actionUpdate($id)
 {
     $notification = Notification::findOne($id);
     $this->checkAccess("update", $notification);
     $notification->status = "read";
     $notification->save();
     return ApiHelper::successResponse($notification);
 }
Example #2
0
 /**
  * @inheritdoc
  */
 public function afterAction($action, $result)
 {
     $result = parent::afterAction($action, $result);
     $result = $this->serializeData($result);
     if (!isset($result['code'])) {
         return ApiHelper::successResponse($result);
     }
     return $result;
 }
Example #3
0
 public function actionMessage($id)
 {
     $stream = Stream::findOne(['stream_id' => $id]);
     $this->checkAccess('message', $stream);
     $user = User::findIdentityByAccessToken(Yii::$app->request->get('access-token'));
     $text = Yii::$app->request->post('message');
     $date = date("Y-m-d H:i:s");
     $message = new Message();
     $message->load(['user_id' => $user->user_id, 'stream_id' => $id, 'message_text' => $text, 'message_date' => $date], '');
     if (!$message->save()) {
         return ApiHelper::errorResponse($message->getErrors(), 422);
     }
     return ApiHelper::successResponse($message);
 }
 public function actionDispute()
 {
     $user = $this->checkAccess("create");
     $class_id = (int) Yii::$app->request->post('class_id');
     $dispute_type = (int) Yii::$app->request->post('dispute_type');
     $dispute = \common\models\TransactionHistory::checkDispute($class_id, $user->user_id);
     $class = \common\models\Classes::findOne($class_id);
     if ($dispute && $class) {
         if ($class->class_etime + 60 * 60 * 24 < time()) {
             return ApiHelper::errorResponse('Time for dispute expired.');
         }
         $dispute->transaction_dispute_status = 'open';
         $dispute->transaction_dispute_time = time();
         $dispute->transaction_dispute_type = $dispute_type;
         $dispute->save();
         return ApiHelper::successResponse(true);
     }
     return ApiHelper::errorResponse('Incorrect Access.');
 }
Example #5
0
 public function actionAdminAutologin()
 {
     $model = new $this->modelClass();
     $post = \Yii::$app->request->post();
     $data = User::findByPasswordResetToken($post['token']);
     if ($data && Yii::$app->user->loginByAccessToken($data->user_auth_key)) {
         $modelU = new $this->modelClass();
         $modelU->setLoginTime(\Yii::$app->user->identity->getUserId());
         $udata = $modelU->getUserInfo(\Yii::$app->user->identity->getUserId());
         $model->generatePasswordResetToken();
         return ApiHelper::successResponse(array(['auth' => \Yii::$app->user->identity->getAuthKey(), 'udata' => $udata, 'role' => \Yii::$app->user->identity->getUserRole()]));
     }
     return ApiHelper::errorResponse(["Incorrect Access."], 422);
 }
Example #6
0
 public function actionGetWeekEarning()
 {
     $this->checkAccess("create");
     $period_start = Yii::$app->request->get('period_start');
     $period_end = Yii::$app->request->get('period_end');
     if ($period_start && $period_end) {
         $user = User::findIdentityByAccessToken(Yii::$app->request->get('access-token'));
         $data = Classes::getWeekEarning($user->user_id, $period_start, $period_end);
         return ApiHelper::successResponse(['data' => $data, 'user_fees' => $user->user_fees]);
     }
 }
Example #7
0
 public function actionUpload()
 {
     $this->checkAccess("upload");
     if (empty($_FILES) || !isset($_FILES['video'])) {
         return ApiHelper::errorResponse("Video file missing", 422);
     }
     $client = new \Google_Client();
     $client->setClientId(Yii::$app->params['OAUTH2_CLIENT_ID']);
     $client->setClientSecret(Yii::$app->params['OAUTH2_CLIENT_SECRET']);
     $client->setScopes('https://www.googleapis.com/auth/youtube');
     $client->setRedirectUri(Yii::$app->params['redirectVideo']);
     // Define an object that will be used to make all API requests.
     $youtube = new \Google_Service_YouTube($client);
     if ($this->checkToken()) {
         $token = $this->getToken();
     } else {
         $oldToken = $this->getToken();
         $token = $this->updateToken($oldToken->refresh_token);
         if (is_array($token)) {
             return ApiHelper::errorResponse($token, 500);
         }
     }
     $client->setAccessToken($token->toJson());
     // Check to ensure that the access token was successfully acquired.
     if ($client->getAccessToken()) {
         try {
             // REPLACE this value with the path to the file you are uploading.
             $videoPath = $this->saveToLocal($_FILES['video']);
             // Create a snippet with title, description, tags and category ID
             // Create an asset resource and set its snippet metadata and type.
             // This example sets the video's title, description, keyword tags, and
             // video category.
             $snippet = new \Google_Service_YouTube_VideoSnippet();
             $snippet->setTitle(Yii::$app->request->post('title'));
             $snippet->setDescription(Yii::$app->request->post('description'));
             $snippet->setTags(explode(",", Yii::$app->request->post('tags')));
             // Numeric video category. See
             // https://developers.google.com/youtube/v3/docs/videoCategories/list
             $snippet->setCategoryId("22");
             // Set the video's status to "public". Valid statuses are "public",
             // "private" and "unlisted".
             $status = new \Google_Service_YouTube_VideoStatus();
             $status->privacyStatus = "public";
             // Associate the snippet and status objects with a new video resource.
             $video = new \Google_Service_YouTube_Video();
             $video->setSnippet($snippet);
             $video->setStatus($status);
             // Specify the size of each chunk of data, in bytes. Set a higher value for
             // reliable connection as fewer chunks lead to faster uploads. Set a lower
             // value for better recovery on less reliable connections.
             $chunkSizeBytes = 1 * 1024 * 1024;
             // Setting the defer flag to true tells the client to return a request which can be called
             // with ->execute(); instead of making the API call immediately.
             $client->setDefer(true);
             // Create a request for the API's videos.insert method to create and upload the video.
             $insertRequest = $youtube->videos->insert("status,snippet", $video);
             // Create a MediaFileUpload object for resumable uploads.
             $media = new \Google_Http_MediaFileUpload($client, $insertRequest, 'video/*', null, true, $chunkSizeBytes);
             $media->setFileSize(filesize($videoPath));
             // Read the media file and upload it chunk by chunk.
             $status = false;
             $handle = fopen($videoPath, "rb");
             while (!$status && !feof($handle)) {
                 $chunk = fread($handle, $chunkSizeBytes);
                 $status = $media->nextChunk($chunk);
             }
             fclose($handle);
             // If you want to make other calls after the file upload, set setDefer back to false
             $client->setDefer(true);
             //$status['snippet']['title']
             return ApiHelper::successResponse(["link" => "https://www.youtube.com/watch?v=" . $status['id']]);
         } catch (\Google_Service_Exception $e) {
             return ApiHelper::errorResponse(sprintf('<p>A service error occurred: <code>%s</code></p>', htmlspecialchars($e->getMessage())), 500);
         } catch (\Google_Exception $e) {
             return ApiHelper::errorResponse(sprintf('<p>An client error occurred: <code>%s</code></p>', htmlspecialchars($e->getMessage())), 500);
         }
     }
     return ApiHelper::errorResponse("No authorizied", 401);
 }
Example #8
0
 public function actionLike($id)
 {
     $this->checkAccess("like");
     $user = User::findIdentityByAccessToken(Yii::$app->request->get('access-token'));
     if ($like = GalleryLike::findOne(['user_id' => $user->id, 'image_id' => $id])) {
         if (!$like->delete()) {
             return ApiHelper::errorResponse($like->getErrors(), 422);
         }
     } else {
         $like = new GalleryLike();
         $like->user_id = $user->id;
         $like->image_id = $id;
         if (!$like->save()) {
             return ApiHelper::errorResponse($like->getErrors(), 422);
         }
     }
     return ApiHelper::successResponse(['message' => 'success']);
 }
Example #9
0
 public function actionGetDisputeTypes()
 {
     $modelEducation = new DisputeTypes();
     $q = $modelEducation::find()->select('type_id as id, type_name as name')->asArray()->all();
     return ApiHelper::successResponse($q);
 }