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 83d7d789a9
commit 2bb27fbcb7
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
+1 -1
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": {
+2
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);
+33
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);
}
+3 -3
View File
File diff suppressed because one or more lines are too long