1 package Newslash::Web::Controller::API::Submission;
2 use Mojo::Base 'Mojolicious::Controller';
3 use Mojo::Util qw(dumper);
4 use Mojo::JSON qw(decode_json encode_json);
12 my $user = $c->stash('user');
13 my $submissions = $c->model('submissions');
14 my $util = $c->model('util');
16 my $allowed = $c->app->config->{Editor}->{allowed_tags};
17 my $data = $c->req->json;
18 my $item = $data->{item};
20 $params->{title} = $util->escape_html({}, $item->{title});
21 $params->{url} = $item->{url};
22 $params->{email} = $item->{email};
23 $params->{introtext} = $util->clean_html($allowed, $item->{introtext});
24 $params->{tid} = 49; #mainpage
25 $params->{action} = $data->{action} || 'preview';
26 $extra_params->{createheaders} = $c->req->headers->to_string;
28 if ($params->{action} eq 'preview') {
30 title => $params->{title},
31 introtext => $params->{introtext},
32 email => $params->{email},
33 tid => $params->{tid},
35 $c->render(json => {item => $result});
37 elsif ($params->{action} eq 'post') {
38 my $sub_id = $submissions->create($params, $user, $extra_params, $opts);
40 $c->render(json => {type => "submission", id => $sub_id});
43 if ($submissions->last_errorno && $submissions->last_errorno == 1062) { #ER_DUP_ENTRY
47 $c->render(json => { err => 1, message => $submissions->last_error });