Exemplo n.º 1
0
 protected function getForQuery(IQueryBuilder $builder, $type, $value)
 {
     $query = $builder->select(['m.mount_id', 'mount_point', 'storage_backend', 'auth_backend', 'priority', 'm.type'])->from('external_mounts', 'm')->innerJoin('m', 'external_applicable', 'a', 'm.mount_id = a.mount_id')->where($builder->expr()->eq('a.type', $builder->createNamedParameter($type, \PDO::PARAM_INT)));
     if (is_null($value)) {
         $query = $query->andWhere($builder->expr()->isNull('a.value'));
     } else {
         $query = $query->andWhere($builder->expr()->eq('a.value', $builder->createNamedParameter($value)));
     }
     return $query;
 }
Exemplo n.º 2
0
 /**
  * @param IQueryBuilder $query
  * @param string $user
  * @param int $since
  * @param string $sort
  *
  * @return array Headers that should be set on the response
  *
  * @throws \OutOfBoundsException If $since is not owned by $user
  */
 protected function setOffsetFromSince(IQueryBuilder $query, $user, $since, $sort)
 {
     if ($since) {
         $queryBuilder = $this->connection->getQueryBuilder();
         $queryBuilder->select('*')->from('activity')->where($queryBuilder->expr()->eq('activity_id', $queryBuilder->createNamedParameter((int) $since)));
         $result = $queryBuilder->execute();
         $activity = $result->fetch();
         $result->closeCursor();
         if ($activity) {
             if ($activity['affecteduser'] !== $user) {
                 throw new \OutOfBoundsException('Invalid since', 2);
             }
             $timestamp = (int) $activity['timestamp'];
             if ($sort === 'DESC') {
                 $query->andWhere($query->expr()->lte('timestamp', $query->createNamedParameter($timestamp)));
                 $query->andWhere($query->expr()->lt('activity_id', $query->createNamedParameter($since)));
             } else {
                 $query->andWhere($query->expr()->gte('timestamp', $query->createNamedParameter($timestamp)));
                 $query->andWhere($query->expr()->gt('activity_id', $query->createNamedParameter($since)));
             }
             return [];
         }
     }
     /**
      * Couldn't find the since, so find the oldest one and set the header
      */
     $fetchQuery = $this->connection->getQueryBuilder();
     $fetchQuery->select('activity_id')->from('activity')->where($fetchQuery->expr()->eq('affecteduser', $fetchQuery->createNamedParameter($user)))->orderBy('timestamp', $sort)->setMaxResults(1);
     $result = $fetchQuery->execute();
     $activity = $result->fetch();
     $result->closeCursor();
     if ($activity !== false) {
         return ['X-Activity-First-Known' => (int) $activity['activity_id']];
     }
     return [];
 }