protected function getIndex($collection, $name)
 {
     $collection = DB::getCollection($collection);
     foreach ($collection->getIndexInfo() as $index) {
         if (isset($index['key'][$name])) {
             return $index;
         }
     }
     return false;
 }
Example #2
0
 /**
  * Returns the next ID for the given sequence.
  * 
  * @param $sequence Name of the desired sequence.
  * @return The next numeric ID for the desired sequence.
  */
 public static function getNextId($sequence)
 {
     $seq = DB::getCollection(static::$collectionName)->findAndModify(array('_id' => $sequence), array('$inc' => array('seq' => 1)), null, array('new' => true, 'upsert' => true));
     return $seq['seq'];
 }
 /**
  * Get a statement count, either for an LRS or for the entire site if no lrs_id passed
  */
 public function getStatementCount($lrs_id = null)
 {
     $collection = \DB::getCollection('statements');
     $query = [];
     //Limit by LRS
     if ($lrs_id) {
         if (!$lrs_id instanceof \MongoId) {
             $lrs_id = new \MongoId($lrs_id);
         }
         $query['lrs_id'] = $lrs_id;
     }
     return $collection->count($query, ['hint' => ['lrs_id' => 1]]);
 }
 /**
  * Display the super admin lrs view.
  * @return Response
  */
 public function lrs()
 {
     $opts = ['user' => \Auth::user()];
     $lrss = $this->lrs->index($opts);
     $lrs_repo = $this->lrs;
     $collection = \DB::getCollection('statements');
     return Response::json(array_map(function ($lrs) use($lrs_repo) {
         $lrs->statement_total = $lrs_repo->getStatementCount($lrs->_id);
         return $lrs;
     }, $lrss));
 }