Ejemplo n.º 1
0
 public function getMods($version = 'all')
 {
     $mods = [];
     $limit = 100;
     $offset = 0;
     $input = Input::only('limit', 'offset');
     if ($input['limit']) {
         $limit = $input['limit'];
     }
     if ($input['offset']) {
         $offset = $input['offset'];
     }
     if ($version == 'all') {
         $raw_mods = Mod::select('id', 'name', 'deck', 'website', 'download_link', 'wiki_link', 'description', 'slug', 'created_at', 'updated_at')->skip($offset)->take($limit)->get();
         $mod_count = Mod::select('id')->count();
     } else {
         $version = $this->getVersion($version);
         $raw_version = MinecraftVersion::where('name', '=', $version)->first();
         $version_id = $raw_version->id;
         if (!$raw_version) {
             return Response::json(['error' => 'Not a valid version.']);
         }
         $query = Mod::whereHas('versions', function ($q) use($version_id) {
             $q->where('minecraft_versions.id', '=', $version_id);
         });
         $mod_count = $query->count();
         $query->skip($offset)->take($limit);
         $raw_mods = $query->get();
     }
     if (!$raw_mods) {
         return Response::json(['error' => 'No results.']);
     }
     foreach ($raw_mods as $mod) {
         $mods['results'][] = ['id' => $mod->id, 'name' => $mod->name, 'short_description' => $mod->deck, 'website' => $mod->website, 'download_link' => $mod->download_link, 'donate_link' => $mod->website, 'wiki_link' => $mod->wiki_link, 'description' => $mod->description, 'slug' => $mod->slug, 'created_at' => $mod->created_at, 'updated_at' => $mod->updated_at];
     }
     $mods['meta'] = ['total_results' => $mod_count, 'limit' => $limit, 'offset' => $offset];
     return Response::json($mods);
 }