Example #1
0
 /**
  * @param array $params Input params.
  * @param int $n Offset.
  * @param \CRestServer $server Rest server instance.
  * @return bool
  * @throws \Exception
  */
 public static function addActivity($params, $n, $server)
 {
     self::checkAdminPermissions();
     $params = self::prepareActivityData($params);
     self::validateActivity($params, $server);
     $params['APP_ID'] = $server->getAppId();
     $params['INTERNAL_CODE'] = self::generateInternalCode($params);
     $params['APP_NAME'] = self::getAppName($params['APP_ID']);
     $iterator = RestActivityTable::getList(array('select' => array('ID'), 'filter' => array('=INTERNAL_CODE' => $params['INTERNAL_CODE'])));
     $result = $iterator->fetch();
     if ($result) {
         throw new RestException('Activity already installed!', self::ERROR_ACTIVITY_ALREADY_INSTALLED);
     }
     $params['AUTH_USER_ID'] = isset($params['AUTH_USER_ID']) ? (int) $params['AUTH_USER_ID'] : 0;
     $result = RestActivityTable::add($params);
     if ($result->getErrors()) {
         throw new RestException('Activity save error!', self::ERROR_ACTIVITY_ADD_FAILURE);
     }
     return true;
 }