Guest User

Untitled

a guest
Dec 11th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. package proj;
  2. use Dancer ':syntax';
  3. use Dancer::Plugin::Mongo;
  4. use URI;
  5.  
  6. our $VERSION = '0.1';
  7.  
  8. before sub {
  9. header 'Access-Control-Allow-Origin' => '*';
  10. };
  11.  
  12. get '/' => sub {
  13. template 'index';
  14. };
  15.  
  16. get '/upload' => sub {
  17. template 'upload';
  18. };
  19.  
  20. post '/upload' => sub {
  21. my $user = param 'username';
  22. my $desc = param 'desc' || 'Empty Description';
  23. my $img = upload 'imagefile';
  24.  
  25. my $u = URI->new("data:");
  26.  
  27. $u->media_type ( $img->type );
  28. $u->data ( $img->content );
  29.  
  30. insert_image($user, $desc, $u);
  31. };
  32.  
  33. post '/images/upload' => sub {
  34. my $user = param 'username';
  35. my $desc = param 'desc';
  36. my $img = param 'image_data';
  37.  
  38. insert_image($user, $desc, $img);
  39. };
  40.  
  41. get '/images/gallery/:user.json' => sub {
  42. my $user = param 'user';
  43. debug 'user = ' . $user;
  44.  
  45. my @images = get_images_for_user($user);
  46.  
  47. to_json { images => [@images] };
  48. };
  49.  
  50. get '/images/gallery/:user' => sub {
  51. my $user = param 'user';
  52. my @images = get_images_for_user($user);
  53.  
  54. template 'images', { images => [@images], user => $user };
  55. };
  56.  
  57. get '/images/gallery.json' => sub {
  58. my @images = mongo->rdb->images->find()->sort({'$natural' => -1})->limit(10)->all;
  59. to_json { images => [@images] }
  60. };
  61.  
  62.  
  63. sub get_images_for_user {
  64. my $user = shift;
  65.  
  66. my $cursor = mongo->rdb->images->find({ user => $user });
  67. my @objects = $cursor->all;
  68. return @objects;
  69. }
  70.  
  71. sub insert_image {
  72. my ($user, $desc, $img_data) = @_;
  73.  
  74. my $obj = {
  75. user => $user,
  76. img => $img_data,
  77. desc => $desc,
  78. };
  79.  
  80. mongo->rdb->images->insert($obj);
  81. }
  82.  
  83. true;
Add Comment
Please, Sign In to add comment