Esempio n. 1
0
File: VK.php Progetto: apuc/api
 public function save()
 {
     if (!$this->validate()) {
         return false;
     }
     $db = \Yii::$app->db;
     $transaction = $db->beginTransaction();
     try {
         $promotion = new Promotion();
         $promotion->user_id = \Yii::$app->user->getId();
         $promotion->url = $this->url;
         $promotion->page_id = VKApi::getGroupIdByUrl($this->url);
         $promotion->status = Promotion::NOT_MODERATED;
         $promotion->save();
         if ($this->hasLikeQuery()) {
             $likeTask = new Task();
             $likeTask->service_id = Service::LIKE_VK;
             $likeTask->promotion_id = $promotion->id;
             $likeTask->task = json_encode($this->getLikeQuery());
             $likeTask->save();
         }
         if ($this->hasRepostQuery()) {
             $likeTask = new Task();
             $likeTask->service_id = Service::REPOST_VK;
             $likeTask->promotion_id = $promotion->id;
             $likeTask->task = json_encode($this->getRepostQuery());
             $likeTask->save();
         }
         if ($this->hasCommentQuery()) {
             $likeTask = new Task();
             $likeTask->service_id = Service::COMMENT_VK;
             $likeTask->promotion_id = $promotion->id;
             $likeTask->task = json_encode($this->getCommentQuery());
             $likeTask->save();
         }
         $transaction->commit();
     } catch (Exception $e) {
         $transaction->rollBack();
         return false;
     }
     return true;
 }