Rex-Endpoint-HTTP

 view release on metacpan or  search on metacpan

lib/Rex/Endpoint/HTTP/Fs.pm  view on Meta::CPAN


sub glob {
   my $self = shift;

   my @glob = $self->_iface->glob($self->req->json->{"glob"});
   $self->render_json({ok => Mojo::JSON->true, glob => \@glob});
}

sub upload {
   my $self = shift;

   eval {
      my $path = $self->req->param("path");
      my $upload = $self->req->upload("content");

      $self->_iface->upload($path, $upload);
      $self->render_json({ok => Mojo::JSON->true});
   } or do {
      $self->render_json({ok => Mojo::JSON->false});
   };

}

sub download {
   my $self = shift;

   eval {
      my $content = $self->_iface->download($self->_path);
      $self->render_json({
         ok => Mojo::JSON->true,
         content => encode_base64($content),
      });
   } or do {
      $self->render_json({ok => Mojo::JSON->false}, status => 404);
   };
}

sub ln {
   my $self = shift;

   eval {
      my $ref = $self->req->json;
      $self->_iface->ln($ref->{from}, $ref->{to});
      $self->render_json({ok => Mojo::JSON->true});
   } or do {
      $self->render_json({ok => Mojo::JSON->false});
   };
}

sub rmdir {
   my $self = shift;

   eval {
      $self->_iface->rmdir($self->_path);
      $self->render_json({ok => Mojo::JSON->true});
   } or do {
      $self->render_json({ok => Mojo::JSON->false});
   };
}

sub chown {
   my $self = shift;

   my $ref = $self->req->json;

   my $user = $ref->{user};
   my $file = $self->_path;
   my $options = $ref->{options};

   eval {
      $self->_iface->chown($user, $file, $options);
      $self->render_json({ok => Mojo::JSON->true});
   } or do {
      $self->render_json({ok => Mojo::JSON->false});
   };
}

sub chgrp {
   my $self = shift;

   my $ref = $self->req->json;
   my $group = $ref->{group};
   my $file = $self->_path;

   my $options = $ref->{options};

   eval {
      $self->_iface->chgrp($group, $file, $options);
      $self->render_json({ok => Mojo::JSON->true});
   } or do {
      $self->render_json({ok => Mojo::JSON->false});
   };
}

sub chmod {
   my $self = shift;

   my $ref = $self->req->json;
   my $mode = $ref->{mode};
   my $file = $self->_path;
   my $options = $ref->{options};

   eval {
      $self->_iface->chmod($mode, $file, $options);
      $self->render_json({ok => Mojo::JSON->true});
   } or do {
      $self->render_json({ok => Mojo::JSON->false});
   };
}

sub cp {
   my $self = shift;

   my $ref = $self->req->json;

   my $source = $ref->{source};
   my $dest   = $ref->{dest};

   eval {
      $self->_iface->cp($source, $dest);
      $self->render_json({ok => Mojo::JSON->true});
   } or do {
      $self->render_json({ok => Mojo::JSON->false});
   };
}

sub _path {
   my $self = shift;
   
   my $ref = $self->req->json;
   return $ref->{path};



( run in 0.631 second using v1.01-cache-2.11-cpan-5511b514fd6 )