/** * * @service click delete * @param ids, status * @return Gpf_Rpc_Action */ public function deleteClicks(Gpf_Rpc_Params $params) { $action = new Gpf_Rpc_Action($params); $date = array(); switch ($action->getParam("status")) { case self::DATE_ONE_WEEK: $filter = new Gpf_SqlBuilder_Filter(array("", "DP", "L7D")); $date = $filter->addDateValueToArray($date); $olderThan = "one week"; break; case self::DATE_TWO_WEEKS: $dateFrom = Gpf_DbEngine_Database::getDateString( Gpf_Common_DateUtils::getServerTime( mktime(0,0,0,date("m"), date("d") - 14, date("Y")))); $date = array("dateFrom" => $dateFrom); $olderThan = "two weeks"; break; case self::DATE_ONE_MONTH: $filter = new Gpf_SqlBuilder_Filter(array("", "DP", "L30D")); $date = $filter->addDateValueToArray($date); $olderThan = "one month"; break; } $action->setInfoMessage($this->_("Raw clicks older than %s are deleted", $olderThan)); $action->setErrorMessage($this->_("Failed to delete raw clicks")); $delete = new Gpf_SqlBuilder_DeleteBuilder(); $delete->from->add(Pap_Db_Table_RawClicks::getName()); $delete->where->add(Pap_Db_Table_RawClicks::DATETIME, "<", $date["dateFrom"]); try { $delete->delete(); $action->addOk(); } catch(Gpf_DbEngine_NoRowException $e) { $action->addError(); } return $action; }
/** * @return Gpf_DateTime */ public function getServerTime() { if ($this->serverTime) { return $this; } return new Gpf_DateTime(Gpf_Common_DateUtils::getServerTime($this->timestamp), true); }