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');
$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');
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 = {};
$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;
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 = {};