if ($type eq 'story') {
my $stories = $c->app->model('stories');
$items = $stories->select(public => "no",
- show_nonpublic => 1,
limit => $limit,
skip => $skip,
);
}
elsif ($type eq 'journal') {
+ my $journals = $c->app->model('journals');
+ $items = $journals->select(public => "no",
+ limit => $limit,
+ skip => $skip,
+ );
+ }
}
elsif ($type eq 'submission') {
my $submissions = $c->app->model('submissions');
$items = $submissions->select(public => "no",
order_by => { "timestamp" => "DESC" },
- show_nonpublic => 1,
limit => $limit,
skip => $skip,
);
sub post {
my $c = shift;
my $data = $c->req->json;
- my $action = $data->{action} || "";
-
- if ($action eq "fetch") {
- return $c->_fetch;
- }
- elsif ($action eq "create") {
- return $c->_create;
- }
- elsif ($action eq "update") {
- return $c->_update;
- }
- elsif ($action eq "delete") {
- return $c->_delete;
- }
-
- $c->render(json => {error => 1, message => "no_action_given"});
- $c->rendered(400);
- return;
-}
-
-sub _fetch {
- my $c = shift;
- my $feeds = $c->app->model('feeds');
- my $data = $c->req->json;
- my $url = $data->{url};
+ my $action = $data->{action};
+ my $type = $data->{type};
+ my $id = $data->{id};
- if (!$url) {
- $c->rendered(400);
- return;
- }
-
- my $feed = $feeds->fetch_url(\$url);
- if (!$feed) {
- $c->render(json => {error => 1, message => $feeds->last_error});
- $c->rendered(400);
- return;
- }
+ my $message = "";
- my $result = { url => $url,
- title => $feed->title,
- description => $feed->description};
-
- $c->render(json => {item => $result});
- return;
-}
-
-sub _create {
- my $c = shift;
- my $feeds = $c->app->model('feeds');
- my $data = $c->req->json;
- my $url = $data->{url};
+ $message = "no_action_given" if !$action;
+ $message = "no_type_given" if !$type;
+ $message = "no_id_given" if !$id;
- if (!$url) {
+ if ($message) {
+ $c->render(json => {error => 1, message => "no_action_given"});
$c->rendered(400);
return;
}
- my $rs = $feeds->select(url => $url);
- if ($rs) {
- $c->render(json => {error => 1, message => "url_is_already_registered"});
- $c->rendered(400);
- return;
+ if ($action eq "block") {
+ return $c->_block($type, $id);
}
-
- my $feed_id = $feeds->create(url => $url,
- title => $data->{title} || "",
- description => $data->{description} || "");
- if (!$feed_id) {
- $c->rendered(500);
- return;
+ elsif ($action eq "unblock") {
+ return $c->_unblock($type, $id);
}
- $c->render(json => {feed_id => $feed_id});
+ $c->render(json => {error => 1, message => "invalid_action"});
+ $c->rendered(400);
return;
+
}
-sub _update {
- my $c = shift;
- my $feeds = $c->app->model('feeds');
- my $data = $c->req->json;
- my $feed_id = $data->{id} || $data->{feed_id};
+sub _block {
+ my ($c, $type, $id) = @_;
- if (!$feed_id) {
- $c->rendered(400);
- return;
+ if ($type eq "story") {
+ my $rs = $c->app->model('stories')->update(id => id,
+ public => 'no');
+ $c->render(json => { type => "story", id => $id, result => $rs });
+ $c->rendered(200);
+ return 1;
}
-
- my $rs = $feeds->select(feed_id => $feed_id);
- if (!$rs) {
- $c->render(json => {error => 1, message => "not_found"});
- $c->rendered(400);
- return;
+ elsif ($type eq "jorunal") {
+ my $rs = $c->app->model('jorunals')->update(id => id,
+ public => 'no');
+ $c->render(json => { type => "journal", id => $id, result => $rs });
+ $c->rendered(200);
+ return 1;
}
-
- $rs = $feeds->update(feed_id => $feed_id,
- title => $data->{title},
- description => $data->{description},
- url => $data->{url},
- status => $data->{status}
- );
- if (!$rs) {
- $c->rendered(500);
- return;
+ elsif ($type eq "submission") {
+ my $rs = $c->app->model('submissions')->update(id => id,
+ public => 'no');
+ $c->render(json => { type => "submission", id => $id, result => $rs });
+ $c->rendered(200);
+ return 1;
}
- $c->render(json => {feed_id => $feed_id});
return;
}
-sub _delete {
- my $c = shift;
- my $feeds = $c->app->model('feeds');
- my $data = $c->req->json;
- my $feed_id = $data->{id} || $data->{feed_id};
- if (!$feed_id) {
- $c->rendered(400);
- return;
- }
+sub _unblock {
+ my ($c, $type, $id) = @_;
- my $rs = $feeds->select(feed_id => $feed_id);
- if (!$rs) {
- $c->render(json => {error => 1, message => "not_found"});
- $c->rendered(400);
- return;
+ if ($type eq "story") {
+ my $rs = $c->app->model('stories')->update(id => id,
+ public => 'yes');
+ $c->render(json => { type => "story", id => $id, result => $rs });
+ $c->rendered(200);
+ return 1;
}
-
- $rs = $feeds->delete(feed_id => $feed_id);
-
- if (!$rs) {
- $c->rendered(500);
- return;
+ elsif ($type eq "jorunal") {
+ my $rs = $c->app->model('jorunals')->update(id => id,
+ public => 'yes');
+ $c->render(json => { type => "journal", id => $id, result => $rs });
+ $c->rendered(200);
+ return 1;
+ }
+ elsif ($type eq "submission") {
+ my $rs = $c->app->model('submissions')->update(id => id,
+ public => 'yes');
+ $c->render(json => { type => "submission", id => $id, result => $rs });
+ $c->rendered(200);
+ return 1;
}
- $c->render(json => {error => 0});
return;
}