public static function createKvote($entryId, $partnerId, $puserId, $rank, $type = KVoteType::RANK) { $kvote = new kvote(); $kvote->setEntryId($entryId); $kvote->setStatus(KVoteStatus::VOTED); $kvote->setPartnerId($partnerId); $kvote->setKvoteType($type); $kuser = self::getKuserFromPuserAndPartner($puserId, $partnerId); if (!$kuser) { $kuser = new kuser(); $kuser->setPuserId($puserId); $kuser->setStatus(KuserStatus::ACTIVE); $kuser->save(); } $kvote->setKuserId($kuser->getId()); $kvote->setRank($rank); $kvote->save(); }
public function executeImpl($partner_id, $subp_id, $puser_id, $partner_prefix, $puser_kuser) { $kshow_id = $this->getPM("kshow_id"); $rank = $this->getPM("rank"); $kshow = kshowPeer::retrieveByPK($kshow_id); if (!$kshow) { $this->addError(APIErrors::INVALID_KSHOW_ID, $kshow_id); return; } if ($rank > entry::MAX_NORMALIZED_RANK || $rank < 0 || !is_numeric($rank)) { $this->addError(APIErrors::INVALID_RANK, $rank); return; } $kuser_id = $puser_kuser->getKuserId(); $entry_id = $kshow->getShowEntryId(); $partner = PartnerPeer::retrieveByPK($partner_id); if (!$partner->getAllowAnonymousRanking()) { // prevent duplicate votes $c = new Criteria(); $c->add(kvotePeer::KUSER_ID, $kuser_id); $c->add(kvotePeer::ENTRY_ID, $entry_id); $c->add(kvotePeer::KSHOW_ID, $kshow_id); $kvote = kvotePeer::doSelectOne($c); if ($kvote != NULL) { $this->addError(APIErrors::USER_ALREADY_RANKED_KSHOW, $puser_id, $kshow_id); return; } } $kvote = new kvote(); $kvote->setKshowId($kshow_id); $kvote->setEntryId($entry_id); $kvote->setKuserId($kuser_id); $kvote->setRank($rank); $kvote->save(); $statistics_results = $kvote->getStatisticsResults(); $updated_kshow = @$statistics_results["kshow"]; if ($updated_kshow) { myNotificationMgr::createNotification(kNotificationJobData::NOTIFICATION_TYPE_KSHOW_RANK, $updated_kshow); $data = array("kshow_id" => $kshow_id, "uid" => $puser_id, "rank" => $updated_kshow->getRank(), "votes" => $updated_kshow->getVotes()); //$this->addMsg ( "kshow" , objectWrapperBase::getWrapperClass( $updated_kshow , objectWrapperBase::DETAIL_LEVEL_DETAILED) ); $this->addMsg("rank", $data); } }
protected function anonymousRankEntry($entryId, $entryType = null, $rank) { $dbEntry = entryPeer::retrieveByPK($entryId); if (!$dbEntry || $entryType !== null && $dbEntry->getType() != $entryType) { throw new KalturaAPIException(KalturaErrors::ENTRY_ID_NOT_FOUND, $entryId); } if ($rank <= 0 || $rank > 5) { throw new KalturaAPIException(KalturaErrors::INVALID_RANK_VALUE); } $kvote = new kvote(); $kvote->setEntryId($entryId); $kvote->setKuserId($this->getKuser()->getId()); $kvote->setRank($rank); $kvote->save(); }