fix up code to 404
[catagits/catbook-code.git] / lib / LolCatalyst / Lite / Controller / Translate.pm
CommitLineData
6955a293 1package LolCatalyst::Lite::Controller::Translate;
2
3use strict;
4use warnings;
5use parent qw(Catalyst::Controller);
6
7sub base :Chained('/') :PathPart('translate') :CaptureArgs(0) {
8 my ($self, $c) = @_;
9 $c->stash(collection => $c->model('SnippetStore'));
10}
11
12sub create :Chained('base') :PathPart('') :Args(0) {
13 my ($self, $c) = @_;
14 my $req = $c->req;
15 if ($req->method eq 'POST' && (my $lol = $req->body_params->{lol})) {
16 my $snippet = $c->stash->{collection}->create({ text => $lol });
17 $c->stash(object => $snippet);
18 $c->detach('view');
19 }
20}
21
22sub object :Chained('base') :PathPart('') :CaptureArgs(1) {
23 my ($self, $c, $id) = @_;
24 my $object = $c->stash->{collection}->find($id);
25 $c->detach('/error_404') unless $object;
26 $c->stash(object => $object);
27}
28
29sub view :Chained('object') :PathPart('') :Args(0) {
30 my ($self, $c) = @_;
31 my $object = $c->stash->{object};
32 $c->stash(
8dcce845 33 result => $object->translated
6955a293 34 );
35}
36
9671ec67 37sub translate_to :Chained('object') :PathPart('to') :Args(1) {
38 my ($self, $c, $to) = @_;
39 my $object = $c->stash->{object};
e639dea9 40 unless ($object->can_translate_to($to)) {
41 $c->detach('/error_404');
42 }
9671ec67 43 $c->stash(
44 result => $object->translated_to($to)
45 );
46 $c->stash(template => 'translate/view.tt');
47}
48
6955a293 491;