feat: Add sorting API

Added POST /api/sort/subs, /api/sort/collections, /api/sort/artifacts for sorting subs, collections, and artifacts.
This commit is contained in:
Peng-YM 2022-07-05 12:41:25 +08:00
parent 84b4dba425
commit ce51674d6b
6 changed files with 45 additions and 10 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
{
"name": "sub-store",
"version": "2.4.0",
"version": "2.5.0",
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.",
"main": "src/main.js",
"scripts": {

View File

@ -15,6 +15,7 @@ import registerArtifactRoutes from './artifacts';
import registerDownloadRoutes from './download';
import registerSettingRoutes from './settings';
import registerPreviewRoutes from './preview';
import registerSortingRoutes from './sort';
import { success } from '@/restful/response';
export default function serve() {
@ -25,6 +26,7 @@ export default function serve() {
registerSubscriptionRoutes($app);
registerDownloadRoutes($app);
registerPreviewRoutes($app);
registerSortingRoutes($app);
registerSettingRoutes($app);
registerArtifactRoutes($app);

View File

@ -0,0 +1,33 @@
import { ARTIFACTS_KEY, COLLECTIONS_KEY, SUBS_KEY } from '@/constants';
import $ from '@/core/app';
import { success } from '@/restful/response';
export default function register($app) {
$app.post('/api/sort/sub', sortSubs);
$app.post('/api/sort/collection', sortCollections);
$app.post('/api/sort/artifacts', sortArtifacts);
}
function sortSubs(req, res) {
const orders = req.body;
const allSubs = $.read(SUBS_KEY);
allSubs.sort((a, b) => orders.indexOf(a) - orders.indexOf(b));
$.write(allSubs, SUBS_KEY);
success(res, allSubs);
}
function sortCollections(req, res) {
const orders = req.body;
const allCols = $.read(COLLECTIONS_KEY);
allCols.sort((a, b) => orders.indexOf(a) - orders.indexOf(b));
$.write(allCols, COLLECTIONS_KEY);
success(res, allCols);
}
function sortArtifacts(req, res) {
const orders = req.body;
const allArtifacts = $.read(ARTIFACTS_KEY);
allArtifacts.sort((a, b) => orders.indexOf(a) - orders.indexOf(b));
$.write(allArtifacts, ARTIFACTS_KEY);
success(res, allArtifacts);
}

File diff suppressed because one or more lines are too long