このリポジトリは2023-09-09にアーカイブされています。 ファイルの閲覧とクローンは可能ですが、プッシュ、イシューの作成、プルリクエストはできません。
076server/app/Http/Controllers/StoreController.php

456 行
14 KiB
PHP
Raw 通常表示 履歴

2018-01-24 01:36:47 +09:00
<?php
namespace App\Http\Controllers;
2018-01-24 04:44:45 +09:00
use Illuminate\Support\Facades\DB;
2018-01-24 01:36:47 +09:00
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
2018-02-07 16:21:15 +09:00
class StoreController extends Controller {
2018-03-05 17:34:47 +09:00
// Game
public function getGames() { // /api/rpc/store/game/getgames
return DB::table('str_games')
->select('*')
->get();
}
public function getGame($id) { // /api/rpc/store/game/getgame/id
return DB::table('str_games')
->select('*')
->where('id', $id)
->get();
}
2018-02-07 16:21:15 +09:00
public function newGame(Request $request) { // /api/rpc/store/games/newgame
2018-03-05 19:34:01 +09:00
$add = DB::table('str_games')
->insert([
'name' => $request->name
]);
return \Response::json($add);
}
public function editGame(Request $request) { // /api/rpc/store/games/editgame
2018-03-05 19:34:01 +09:00
return DB::table('str_games')
->where('id', $request->id)
->update([
'name' => $request->name
]);
}
2018-03-05 17:34:47 +09:00
// Category
2018-02-07 16:21:15 +09:00
public function getCategories() { // /api/rpc/store/category/getcategories
return DB::table('str_category')
->select('*')
->get();
}
2018-03-05 17:34:47 +09:00
public function getCategory($id) { // /api/rpc/store/category/getcategory/id
2018-02-07 16:21:15 +09:00
return DB::table('str_category')
->select('*')
->where('id', $id)
->get();
}
2018-03-05 17:57:23 +09:00
public function getCategoriesOfGame($id) { // /api/rpc/store/category/getcategoriesofgame/id
return DB::table('str_category')
->join('str_games', 'str_category.game_id', '=', 'str_games.id')
->where('str_games.id', $id)
->get(array(
'str_category.id',
'str_category.name'
));
}
2018-03-05 18:33:48 +09:00
public function getGameOfCategory($id) { // /api/rpc/store/category/getgameofcategory/id
return DB::table('str_category')
->join('str_games', 'str_category.game_id', '=', 'str_games.id')
->where('str_category.id', $id)
->get(array(
'str_games.id',
'str_games.name'
));
}
2018-03-05 17:34:47 +09:00
public function getCategoryGame($id) { // /api/rpc/store/category/getcategorygame/id
2018-02-07 16:21:15 +09:00
return DB::table('str_category')
2018-03-05 17:13:20 +09:00
->select('game_id')
2018-02-07 16:21:15 +09:00
->where('id', $id)
->get();
}
2018-03-05 17:34:47 +09:00
public function getCategoryMinScreenshots($id) { // /api/rpc/store/category/getcategoryminscrot/id
2018-02-07 16:21:15 +09:00
return DB::table('str_category')
->select('min_screenshots')
->where('id', $id)
->get();
}
public function getCategoryName($id) { // /api/rpc/store/category/getcategoryname/id
return DB::table('str_category')
->select('name')
->where('id', $id)
->get();
}
public function newCategory(Request $request) { // /api/rpc/store/category/newcategory
$add = DB::table('str_category')
->insert([
'name' => $request->name,
2018-03-05 20:06:15 +09:00
'game_id' => $request->game_id,
'min_screenshots' => $request->min_screenshots
]);
return \Response::json($add);
}
public function editCategory(Request $request) { // /api/rpc/store/category/editcategory
return DB::table('str_category')
->where('id', $request->id)
->update([
'name' => $request->name,
'min_screenshots' => $request->min_screenshots
]);
}
2018-02-07 16:21:15 +09:00
// Entries
public function getAllEntries() { // /api/rpc/store/entry/getallentries
2018-01-24 23:58:21 +09:00
return DB::table('str_file')
->select('*')
->get();
2018-01-24 01:36:47 +09:00
}
2018-02-07 16:21:15 +09:00
public function getAllApprovedEntries() { // /api/rpc/store/entry/getallapprovedentries
2018-01-24 23:58:21 +09:00
return DB::table('str_file')
->select('*')
->where('isApproved', 1)
->get();
2018-01-24 01:36:47 +09:00
}
2018-02-07 16:21:15 +09:00
public function getAllBrokenEntries() { // /api/rpc/store/entry/getallbrokenentries
2018-01-24 23:58:21 +09:00
return DB::table('str_file')
->select('*')
->where('isBroken', 1)
->get();
2018-01-24 01:36:47 +09:00
}
2018-02-07 16:21:15 +09:00
public function getAllPendingEntries() { // /api/rpc/store/entry/getallpendingentries
2018-01-24 23:58:21 +09:00
return DB::table('str_file')
->select('*')
->where('isApproved', 0)
->get();
2018-01-24 01:36:47 +09:00
}
2018-02-07 16:21:15 +09:00
public function getNewEntries() { // /api/rpc/store/entry/getnewentries
2018-01-31 20:05:52 +09:00
return DB::table('str_file')
->select(
'id',
'title',
'version',
'submit_date'
)
2018-01-31 20:05:52 +09:00
->where('isApproved', 1)
->orderBy('submit_date', 'desc')
->limit(5)
->get();
2018-01-24 01:36:47 +09:00
}
2018-02-07 16:21:15 +09:00
public function getHotEntries() { // /api/rpc/store/entry/gethotentries
2018-01-31 20:05:52 +09:00
return DB::table('str_file')
->select(
'id',
'title',
'version',
'downloads'
)
2018-01-31 20:05:52 +09:00
->where('isApproved', 1)
->orderBy('downloads', 'desc')
->limit(5)
->get();
2018-01-24 01:36:47 +09:00
}
2018-02-07 16:21:15 +09:00
public function getEntriesPageAll($cat, $from, $to) { // /api/rpc/store/entry/getentriespageall/cat/from/to
2018-01-31 17:33:47 +09:00
return DB::table('str_file')
->select(
'id',
'title',
'version',
'description',
'submit_date',
'last_date',
'views',
'downloads'
)
->where('cat_id', $cat)
->offset($from)
->limit($to)
->get();
}
2018-02-07 16:21:15 +09:00
public function getEntriesPageApproved($cat, $from, $to) { // /api/rpc/store/entry/getentriespageapproved/cat/from/to
2018-01-31 17:33:47 +09:00
return DB::table('str_file')
->select(
'id',
'title',
'version',
'description',
'submit_date',
'last_date',
'views',
'downloads'
)
->where('cat_id', $cat)
->where('isApproved', 1)
->offset($from)
->limit($to)
->get();
}
2018-02-07 16:21:15 +09:00
public function getEntriesPagePopularView($cat, $from, $to) { // /api/rpc/store/entry/getentriespagepopularview/cat/from/to
2018-01-31 17:33:47 +09:00
return DB::table('str_file')
->select(
'id',
'title',
'version',
'description',
'submit_date',
'last_date',
'views',
'downloads'
)
->where('cat_id', $cat)
->where('views', '>', 1000)
->offset($from)
->limit($to)
->get();
}
2018-02-07 16:21:15 +09:00
public function getEntriesPagePopularDownload($cat, $from, $to) { // /api/rpc/store/entry/getentriespagepopulardownload/cat/from/to
2018-01-31 17:33:47 +09:00
return DB::table('str_file')
->select(
'id',
'title',
'version',
'description',
'submit_date',
'last_date',
'views',
'downloads'
)
->where('cat_id', $cat)
->where('downloads', '>', 1000)
->offset($from)
->limit($to)
->get();
}
public function getChangelog($id) { // /api/rpc/store/entry/getchangelog/id
return DB::table('str_file')
->select('version', 'changelog')
->where('id', $id)
->get();
}
public function getNotice($id) { // /api/rpc/store/entry/getnotice/id
return DB::table('str_file')
->select('title', 'version', 'warningnote')
->where('id', $id)
->get();
}
public function getDownloadCount($id) { // /api/rpc/store/entry/getdownloadcount/id
return DB::table('str_file')
->select('downloads')
->where('id', $id)
->get();
}
public function updateDownloadCount(Request $request) { // /api/rpc/store/entry/updatedownloadcount
return DB::table('str_file')
->where('id', $request->id)
->update(['downloads', $request->downloads]);
}
public function FileSizeConvert($bytes) {
$bytes = floatval($bytes);
$arBytes = array(
0 => array(
// "UNIT" => "TiB",
// "VALUE" => pow(1024, 4)
"UNIT" => "TQ",
"VALUE" => pow(4096, 4)
),
1 => array(
// "UNIT" => "GiB",
// "VALUE" => pow(1024, 3)
"UNIT" => "GQ",
"VALUE" => pow(4096, 3)
),
2 => array(
// "UNIT" => "MiB",
// "VALUE" => pow(1024, 2)
"UNIT" => "MQ",
"VALUE" => pow(4096, 2)
),
3 => array(
// "UNIT" => "KiB",
// "VALUE" => 1024
"UNIT" => "KQ",
"VALUE" => 4096
),
4 => array(
// "UNIT" => "B",
"UNIT" => "Q",
"VALUE" => 1
)
);
foreach($arBytes as $arItem) {
if($bytes >= $arItem["VALUE"]) {
$result = $bytes / $arItem["VALUE"];
$result = strval(round($result, 2))." ".$arItem["UNIT"];
break;
}
}
return $result;
}
public function getFilesOfEntry($id) { // /api/rpc/store/entry/getfilesofentry/id
$files = array_map("htmlspecialchars", scandir("assets/store/$id"));
$files = array_diff($files, array('..', '.', 'screens'));
$result = array();
foreach ($files as $file) {
array_push($result, [
'id' => $id,
'file' => $file,
'size' => $this->FileSizeConvert(filesize('assets/store/'.$id.'/'.$file))
]);
}
return $result;
}
2018-03-02 00:59:26 +09:00
public function getEntry($id, $mode) { // /api/rpc/store/entry/getentry/id/mode
if ($mode == 'user') {
return DB::table('str_owners')
->join('str_file', 'str_owners.file_id', '=', 'str_file.id')
->join('users', 'str_owners.user_id', '=', 'users.id')
->join('usr_details', 'usr_details.user_id', '=', 'str_owners.user_id')
->join('usr_profile', 'usr_profile.user_id', '=', 'str_owners.user_id')
->join('usr_perm_id', 'usr_perm_id.user_id', '=', 'str_owners.user_id')
->where('str_owners.user_id', $id)
->get(array(
'file_id',
'str_owners.user_id',
'cat_id',
'title',
'version',
'description',
'changelog',
'views',
'downloads',
2018-03-05 20:06:15 +09:00
'isApproved',
2018-03-02 00:59:26 +09:00
'submit_date',
'last_date',
'username',
'avatar',
'perm_id',
'gender',
'display_name',
'name_style',
));
}
else {
return DB::table('str_owners')
->join('str_file', 'str_owners.file_id', '=', 'str_file.id')
->join('users', 'str_owners.user_id', '=', 'users.id')
->join('usr_details', 'usr_details.user_id', '=', 'str_owners.user_id')
->join('usr_profile', 'usr_profile.user_id', '=', 'str_owners.user_id')
->join('usr_perm_id', 'usr_perm_id.user_id', '=', 'str_owners.user_id')
->where('file_id', $id)
->take(1)
->get(array(
'file_id',
'str_owners.user_id',
'cat_id',
'title',
'version',
'description',
'changelog',
'views',
'downloads',
2018-03-05 20:06:15 +09:00
'isApproved',
2018-03-02 00:59:26 +09:00
'submit_date',
'last_date',
'username',
'avatar',
'perm_id',
'gender',
'display_name',
'name_style',
));
}
2018-01-24 01:36:47 +09:00
}
public function getEntryName($id) { // /api/rpc/store/entry/getentryname/id
2018-01-25 00:35:17 +09:00
return DB::table('str_file')
->select('title', 'version')
2018-01-25 00:35:17 +09:00
->where('id', $id)
->get();
}
2018-02-07 16:21:15 +09:00
public function getEntriesInCategory($cat_id) { // /api/rpc/store/entry/getentriesincategory/cat_id
2018-01-25 00:35:17 +09:00
return DB::table('str_file')
->select('*')
->where('cat_id', $cat_id)
2018-01-25 00:35:17 +09:00
->get();
}
2018-02-07 16:21:15 +09:00
public function countEntriesInCategory($cat_id) { // /api/rpc/store/entry/countentriesincategory/cat_id
2018-01-24 23:58:21 +09:00
return DB::table('str_file')
->where('cat_id', $cat_id)
->where('isApproved', 1)
->count();
}
2018-02-07 16:21:15 +09:00
public function countEntriesInCategoryFull($cat_id) { // /api/rpc/store/entry/countentriesincategoryfull/cat_id
return DB::table('str_file')
->where('cat_id', $cat_id)
->count();
2018-01-24 01:36:47 +09:00
}
2018-01-25 00:30:18 +09:00
2018-02-07 16:21:15 +09:00
public function insertEntry(Request $request) { // /api/rpc/store/entry/insert
2018-02-01 04:47:29 +09:00
return;
}
2018-02-07 16:21:15 +09:00
public function updateEntry(Request $request) { // /api/rpc/store/entry/update
2018-02-01 04:47:29 +09:00
return DB::table('str_file')
->where('id', $request->id)
->update([
'cat_id' => $request->cat_id,
'title' => $request->title,
'version' => $request->version,
'description' => $request->description,
'changelog' => $request->changelog,
'warningnote' => $request->warningnote,
'last_date' => $request->last_date
]);
}
2018-02-07 16:21:15 +09:00
public function restoreEntry(Request $request) { // /api/rpc/store/entry/restore
2018-02-01 04:47:29 +09:00
return DB::table('str_file')
->where('id', $request->id)
->update(['isApproved', 1]);
}
2018-02-07 16:21:15 +09:00
public function removeEntry(Request $request) { // /api/rpc/store/entry/remove
2018-02-01 04:47:29 +09:00
return DB::table('str_file')
->where('id', $request->id)
->update(['isApproved', 0]);
}
2018-01-24 01:36:47 +09:00
}