OSDN Git Service

move functions from Web::Controller::Admin::Submiossions to Web::Controller::API...
authorhylom <hylom@users.sourceforge.jp>
Tue, 29 Aug 2017 12:32:48 +0000 (21:32 +0900)
committerhylom <hylom@users.sourceforge.jp>
Tue, 29 Aug 2017 12:32:48 +0000 (21:32 +0900)
src/newslash_web/lib/Newslash/Web.pm
src/newslash_web/lib/Newslash/Web/Controller/API/Submission.pm
src/newslash_web/lib/Newslash/Web/Controller/Admin/Submissions.pm
src/newslash_web/public/js/submissions-manager.js

index 6d8902d..15feea6 100644 (file)
@@ -211,7 +211,6 @@ sub startup {
     my $admin = $r->under('/admin' => sub { my $c = shift; $c->stash(seclev => 10000); return 1; });
 
     $admin->get('/submissions')->to('admin-submissions#index');
-    $admin->get('/submissions/list')->to('admin-submissions#list');
 
     $admin->get('/css')->to('admin-css#edit');
     $admin->get('/story/edit')->to('admin-story#edit');
@@ -258,6 +257,7 @@ sub startup {
     $api->post('/journal')->to('API::Journal#post', seclev => 1, csrf_check_id => 'journal');
 
     $api->get('/submission')->to('API::Submission#get');
+    $api->get('/submissions')->to('API::Submission#list');
     $api->post('/submission')->to('API::Submission#post', captcha_check => 1, csrf_check_id => 'submission');
 
     $api->get('/story')->to('API::Story#get');
index d6a9e30..9d83c4a 100644 (file)
@@ -23,6 +23,44 @@ sub get {
     return;
 }
 
+sub list {
+    my $c = shift;
+    my $submissions = $c->app->model('submissions');
+    my $items = [];
+    my $message = "";
+    my $user = $c->stash('user');
+
+    my $show_deleted = 0;
+    if ($c->param('show_deleted') && $user->{is_admin}) {
+        $show_deleted = 1;
+    }
+
+    my $limit = 50;
+    my $skip = 0;
+    if ($c->param('limit')
+        && $c->param('limit') =~ m/\A[0-9]+\z/
+        && $c->param('limit') < 50) {
+        $limit = $c->param('limit');
+    }
+    if ($c->param('skip')
+        && $c->param('skip') =~ m/\A[0-9]+\z/) {
+        $skip = $c->param('skip');
+    }
+
+    $items = $submissions->select(del => $show_deleted,
+                                  order_by => {create_time => "DESC"},
+                                  limit => $limit,
+                                  skip => $skip);
+    if (!$items) {
+        $message = $submissions->last_error;
+        $c->render(json => {message => $message, error => 1});
+    }
+    else {
+        $c->render(json => {message => $message, items => $items});
+    }
+    return;
+}
+
 sub post {
     my $c = shift;
     my $params = {};
index ca0cc2e..83dd9eb 100644 (file)
@@ -8,124 +8,5 @@ sub index {
     $c->render;
 }
 
-sub list {
-    my $c = shift;
-    my $submissions = $c->app->model('submissions');
-    my $items = [];
-    my $message = "";
-
-    my $show_deleted = $c->param('show_deleted') ? 1 : 0;
-    my $limit = 50;
-    my $skip = 0;
-    if ($c->param('limit')
-        && $c->param('limit') =~ m/\A[0-9]+\z/
-        && $c->param('limit') < 50) {
-        $limit = $c->param('limit');
-    }
-    if ($c->param('skip')
-        && $c->param('skip') =~ m/\A[0-9]+\z/) {
-        $skip = $c->param('skip');
-    }
-
-    $items = $submissions->select(del => $show_deleted, limit => $limit, skip => $skip);
-    if (!$items) {
-        $message = $submissions->last_error;
-        $c->render(json => {message => $message, error => 1});
-    }
-    else {
-        $c->render(json => {message => $message, items => $items});
-    }
-    return;
-}
-
-sub update {
-    my $c = shift;
-    my $boxes = $c->app->model('boxes');
-    my $data = $c->req->json;
-
-    if (!$data) {
-        $c->rendered(400);
-        return;
-    }
-
-    my $params = {};
-    my $err = "";
-    $err = "no name" if !$data->{name};
-    for my $i (qw(name model query_params limit template comment)) {
-        $params->{$i} = $data->{$i} || "";
-    }
-
-    if (length $err) {
-        $c->render(json => {error => 1, message => $err});
-        return;
-    }
-
-    my $id;
-    if ($data->{id}) { # update item
-        $id = $boxes->update(id => $data->{id}, $params);
-    }
-    else { # create new item
-        $id = $boxes->create($params);
-    }
-    if (!$id) {
-        $c->render(json => {error => 1, message => $boxes->last_error});
-        return;
-    }
-    $c->render(json => {id => $id});
-    return;
-}
-
-sub delete {
-    my $c = shift;
-    my $boxes = $c->app->model('boxes');
-    my $data = $c->req->json;
-
-    if (!$data) {
-        $c->rendered(400);
-        return;
-    }
-
-    my $params = {};
-    my $err = "";
-    if (!$data->{id}) {
-        $err = "no id given";
-    }
-    if (length $err) {
-        $c->render(json => {error => 1, message => $err});
-        return;
-    }
-
-    my $rs = $boxes->delete($data->{id});
-
-    if (!$rs) {
-        $c->render(json => {error => 1, message => $boxes->last_error});
-        return;
-    }
-    $c->render(json => {error => 0, id => $data->{id}});
-    return;
-}
-
-sub get {
-    my $c = shift;
-    my $boxes = $c->app->model('boxes');
-    my $message = "";
-
-    my $data = $c->req->json;
-
-    if (!$data || !$data->{id}) {
-        $c->rendered(400);
-        return;
-    }
-
-    my $item = $boxes->select(id => $data->{id});
-    if (!$item) {
-        $c->render(json => {message => "no item"});
-        return;
-    }
-
-    $c->render(json => {item => $item});
-    return;
-}
-
 1;
 
index 1bb2eed..5161fdc 100644 (file)
@@ -9,10 +9,10 @@ submissionsManager.run = function run (params) {
     status: '',
     showDeletedSubjs: false,
     urls: {
-      update: '/admin/submissions/update',
-      get: '/admin/submissions/get',
+      // update: '/admin/submissions/update',
+      // get: '/admin/submissions/get',
       delete: '/admin/submissions/delete',
-      list: '/admin/submissions/list',
+      list: '/api/v1/submissions',
     },
   };
   const computed = {};