1 package LolCatalyst::Lite::Controller::Translate;
5 use parent qw(Catalyst::Controller);
7 sub base :Chained('/') :PathPart('translate') :CaptureArgs(0) {
9 $c->stash(collection => $c->model('SnippetStore'));
12 sub create :Chained('base') :PathPart('') :Args(0) {
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);
22 sub 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);
29 sub view :Chained('object') :PathPart('') :Args(0) {
31 my $object = $c->stash->{object};
33 result => $object->translated
37 sub translate_to :Chained('object') :PathPart('to') :Args(1) {
38 my ($self, $c, $to) = @_;
39 my $object = $c->stash->{object};
40 unless ($object->can_translate_to($to)) {
41 $c->detach('/error_404');
44 result => $object->translated_to($to)
46 $c->stash(template => 'translate/view.tt');