From: hylom Date: Thu, 7 Jun 2018 12:21:45 +0000 (+0900) Subject: js: implement AD code related methods X-Git-Tag: v0.1.3~6 X-Git-Url: http://git.osdn.net/view?p=newslash%2Fnewslash.git;a=commitdiff_plain;h=23d77631917cba250a03de08d1465f5a18ce156e js: implement AD code related methods --- diff --git a/src/newslash_web/lib/Newslash/Web.pm b/src/newslash_web/lib/Newslash/Web.pm index 43a0fe2d..18fad539 100644 --- a/src/newslash_web/lib/Newslash/Web.pm +++ b/src/newslash_web/lib/Newslash/Web.pm @@ -162,8 +162,11 @@ sub startup { # Statics Logger $app->plugin('Newslash::Plugin::Statics'); - # Request Baker - $app->plugin('Newslash::Plugin::ReqBaker'); + # Request Body based routing condition + $app->plugin('Newslash::Plugin::RequestBodyCondition'); + + # NS-RPC + $app->plugin('Newslash::Plugin::NSRPC'); ############################################################ # @@ -312,9 +315,10 @@ sub startup { $admin_api->get('/sidebar')->to('API::Admin::Sidebar#get'); # ad codes management - $app->baker->add_route($admin_api->get('/ad/code/'), 'ad_codes', 'select'); - $app->baker->add_route($admin_api->post('/ad/code/')->over(bake => {action => "delete"}), 'ad_codes', 'delete'); - $app->baker->add_route($admin_api->post('/ad/code/')->over(bake => {action => "create"}), 'ad_codes', 'create'); + $app->rpc->route_to_model($admin_api->get('/ad/code/'), 'ad_codes', 'select'); + $app->rpc->route_to_model($admin_api->post('/ad/code/')->over(request_body => {action => "create"}), 'ad_codes', 'create'); + $app->rpc->route_to_model($admin_api->post('/ad/code/')->over(request_body => {action => "update"}), 'ad_codes', 'update'); + $app->rpc->route_to_model($admin_api->post('/ad/code/')->over(request_body => {action => "delete"}), 'ad_codes', 'delete'); # API my $api = $r->under('/api/v1'); diff --git a/src/newslash_web/public/js/newslash-admin.js b/src/newslash_web/public/js/newslash-admin.js index 9d173353..c0507621 100644 --- a/src/newslash_web/public/js/newslash-admin.js +++ b/src/newslash_web/public/js/newslash-admin.js @@ -59,4 +59,29 @@ return this.get("/sidebar?id=" + id); }; + // AD codes + nsAdmin.getADCodes = function getADCodes() { + return this.get("/ad/code"); + }; + + nsAdmin.getADCodeById = function getADCodeById(id) { + if (!id) return this.fail(); + return this.get("/ad/code?id=" + id); + }; + + nsAdmin.updateADCodes = function createADCode(params) { + if (!params) return this.fail(); + if (params.id) { + params.action = "update"; + } else { + params.action = "create"; + } + return this.post("/ad/code", params); + }; + + nsAdmin.deleteADCodes = function deleteADCode(id) { + if (!id) return this.fail(); + return this.post("/ad/code", { action: "delete", id: id }); + }; + }).apply();