🌊 Added connect endpoint

This commit is contained in:
2023-09-01 11:23:42 -05:00
parent 09061905bb
commit e49c9c985a
3 changed files with 66 additions and 9 deletions

49
package-lock.json generated
View File

@@ -8,6 +8,7 @@
"name": "threetwo-acquisition-service", "name": "threetwo-acquisition-service",
"version": "1.0.0", "version": "1.0.0",
"dependencies": { "dependencies": {
"@robertklep/qbittorrent": "^1.0.1",
"ioredis": "^5.0.0", "ioredis": "^5.0.0",
"moleculer": "^0.14.27", "moleculer": "^0.14.27",
"moleculer-web": "^0.10.5" "moleculer-web": "^0.10.5"
@@ -1322,6 +1323,14 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/@robertklep/qbittorrent": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@robertklep/qbittorrent/-/qbittorrent-1.0.1.tgz",
"integrity": "sha512-XQDKXN8sVGAIoZa+ZeGA+2p1HlQ2QPkfOtq9CL6za1qYsX2aLakkFVB7n4+ifaQoMvtV7l3RWqa/0lKwoUGR2Q==",
"dependencies": {
"needle": "^3.0.0"
}
},
"node_modules/@sinclair/typebox": { "node_modules/@sinclair/typebox": {
"version": "0.27.8", "version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
@@ -5691,6 +5700,41 @@
"integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
"dev": true "dev": true
}, },
"node_modules/needle": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/needle/-/needle-3.2.0.tgz",
"integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==",
"dependencies": {
"debug": "^3.2.6",
"iconv-lite": "^0.6.3",
"sax": "^1.2.4"
},
"bin": {
"needle": "bin/needle"
},
"engines": {
"node": ">= 4.4.x"
}
},
"node_modules/needle/node_modules/debug": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dependencies": {
"ms": "^2.1.1"
}
},
"node_modules/needle/node_modules/iconv-lite": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/next-tick": { "node_modules/next-tick": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
@@ -6571,6 +6615,11 @@
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
}, },
"node_modules/sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
},
"node_modules/semver": { "node_modules/semver": {
"version": "7.5.4", "version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",

View File

@@ -21,31 +21,32 @@
], ],
"author": "", "author": "",
"devDependencies": { "devDependencies": {
"@jest/globals": "^29.3.1",
"@types/jest": "^29.2.3",
"@types/node": "^18.11.9",
"@typescript-eslint/eslint-plugin": "^5.44.0", "@typescript-eslint/eslint-plugin": "^5.44.0",
"@typescript-eslint/parser": "^5.44.0", "@typescript-eslint/parser": "^5.44.0",
"concurrently": "^7.6.0",
"cross-env": "^7.0.3",
"eslint": "^8.28.0", "eslint": "^8.28.0",
"eslint-config-airbnb-base": "^15.0.0", "eslint-config-airbnb-base": "^15.0.0",
"eslint-config-airbnb-typescript": "^17.0.0", "eslint-config-airbnb-typescript": "^17.0.0",
"eslint-config-prettier": "^8.5.0", "eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.26.0", "eslint-plugin-import": "^2.26.0",
"eslint-plugin-jest": "^27.1.6", "eslint-plugin-jest": "^27.1.6",
"prettier": "^2.8.0",
"@jest/globals": "^29.3.1",
"@types/jest": "^29.2.3",
"@types/node": "^18.11.9",
"concurrently": "^7.6.0",
"cross-env": "^7.0.3",
"jest": "^29.3.1", "jest": "^29.3.1",
"moleculer-repl": "^0.7.3", "moleculer-repl": "^0.7.3",
"prettier": "^2.8.0",
"ts-jest": "^29.0.3", "ts-jest": "^29.0.3",
"ts-node": "^10.9.1", "ts-node": "^10.9.1",
"typescript": "^4.9.3" "typescript": "^4.9.3"
}, },
"dependencies": { "dependencies": {
"moleculer-web": "^0.10.5", "@robertklep/qbittorrent": "^1.0.1",
"ioredis": "^5.0.0", "ioredis": "^5.0.0",
"moleculer": "^0.14.27" "moleculer": "^0.14.27",
}, "moleculer-web": "^0.10.5"
},
"engines": { "engines": {
"node": ">= 16.x.x" "node": ">= 16.x.x"
} }

View File

@@ -1,5 +1,6 @@
"use strict"; "use strict";
import { Context, Service, ServiceBroker, ServiceSchema, Errors } from "moleculer"; import { Context, Service, ServiceBroker, ServiceSchema, Errors } from "moleculer";
import { qBittorrentClient } from "@robertklep/qbittorrent";
export default class QBittorrentService extends Service { export default class QBittorrentService extends Service {
// @ts-ignore // @ts-ignore
@@ -16,6 +17,12 @@ export default class QBittorrentService extends Service {
connect: { connect: {
rest: "POST /connect", rest: "POST /connect",
handler: async (ctx: Context<{}>) => { handler: async (ctx: Context<{}>) => {
const client = new qBittorrentClient(
"http://127.0.0.1:8080",
"admin",
"adminadmin",
);
console.log(client);
return { foo: "bar" }; return { foo: "bar" };
}, },
}, },