diff --git a/public/js/plugin-download.js b/public/js/plugin-download.js index 752e978..422f613 100644 --- a/public/js/plugin-download.js +++ b/public/js/plugin-download.js @@ -378,7 +378,7 @@ const component = () => { }, subscribe(modal) { this.subscribing = true; - fetch(`${base_url}api/admin/plugin/subscribe`, { + fetch(`${base_url}api/admin/plugin/subscriptions`, { method: "POST", body: JSON.stringify({ filters: this.filterSettings, diff --git a/src/plugin/plugin.cr b/src/plugin/plugin.cr index 7867a68..e743915 100644 --- a/src/plugin/plugin.cr +++ b/src/plugin/plugin.cr @@ -145,7 +145,7 @@ class Plugin def unsubscribe(id : String) list = SubscriptionList.new info.dir - list.reject &.id.== id + list.reject! &.id.== id list.save end diff --git a/src/routes/api.cr b/src/routes/api.cr index 545533c..8ef0229 100644 --- a/src/routes/api.cr +++ b/src/routes/api.cr @@ -626,7 +626,7 @@ struct APIRouter end end - post "/api/admin/plugin/subscribe" do |env| + post "/api/admin/plugin/subscriptions" do |env| begin plugin_id = env.params.json["plugin"].as String filters = env.params.json["filters"].as(Array(JSON::Any)).map do |f| @@ -652,6 +652,41 @@ struct APIRouter end end + get "/api/admin/plugin/subscriptions" do |env| + begin + pid = env.params.query["plugin"].as String + send_json env, { + "success" => true, + "subscriptions" => Plugin.new(pid).list_subscriptions, + }.to_json + rescue e + Logger.error e + send_json env, { + "success" => false, + "error" => e.message, + }.to_json + end + end + + delete "/api/admin/plugin/subscriptions" do |env| + begin + pid = env.params.query["plugin"].as String + sid = env.params.query["subscription"].as String + + Plugin.new(pid).unsubscribe sid + + send_json env, { + "success" => true, + }.to_json + rescue e + Logger.error e + send_json env, { + "success" => false, + "error" => e.message, + }.to_json + end + end + Koa.describe "Lists the chapters in a title from a plugin" Koa.tags ["admin", "downloader"] Koa.query "plugin", schema: String