public function actionCreate() { //$start = microtime(); parent::actionIndex(); $postId = (int) Yii::$app->getRequest()->post('post_id'); $url = Yii::$app->getRequest()->post('post_url'); if ($postId && $postId != "undefined") { $post = Post::findByMySqlId($postId, Yii::$app->getRequest()->post('project_id')); } elseif ($url) { $post = Post::findByUrl($url); } else { throw new ForbiddenHttpException("Param url is not provided", self::CODE_NO_URL); } $postViewModel = new PostView(); $postViewModel->load(Yii::$app->getRequest()->getBodyParams(), ''); $postViewModel->post_id = $postId; $postViewModel->save(); if ($post) { $total = PostView::find()->where(array('project_id' => (int) Yii::$app->getRequest()->post('project_id'), 'post_id' => $postId))->count(); //$unique = PostView::find()->where(array('project_id' => (int)Yii::$app->getRequest()->post('project_id'), 'post_id' => (int)$post->getID()))->distinct("uid"); $response = array('total' => $total, 'unique' => (int) $post->views['unique']); $post->views = $response; $post->save(); } else { $total = PostView::find()->where(array('project_id' => (int) Yii::$app->getRequest()->post('project_id'), 'post_id' => $postId, 'post_url' => $url))->count(); $response = array('total' => $total, 'unique' => 0); } //echo microtime() - $start; return $response; }
public function actionCreate() { parent::actionIndex(); if (!($url = Yii::$app->getRequest()->post('url'))) { throw new ForbiddenHttpException("Param url is not provided", self::CODE_NO_URL); } if (substr($url, -1) != "/") { $url = $url . "/"; } $socialShare = new SocialShare($url); $post = Post::findByUrl($url); if (!$post) { throw new ForbiddenHttpException("Post not found", self::CODE_NO_POST); } return $socialShare->save($post); }
public function actionIndex() { parent::actionIndex(); if (!($projectId = Yii::$app->getRequest()->getQueryParam('project_id'))) { throw new ForbiddenHttpException("Project_id is required", self::CODE_NO_PROJECT); } if (!($postId = Yii::$app->getRequest()->getQueryParam('post_id'))) { throw new ForbiddenHttpException("Post_id is required", self::CODE_NO_POST); } $whereCondition['ID'] = (int) $postId; $whereCondition['project_id'] = (int) $projectId; $post = Post::find()->where($whereCondition)->one(); $response = array(); if (!is_null($post)) { $response = array('shares' => $post->shares, 'clicks' => $post->clicks, 'views' => $post->views); } return $response; }