diff of 9da316f6c01722ba4f6d0be6f7b820f03e593464

9da316f6c01722ba4f6d0be6f7b820f03e593464
diff --git a/aggressive-murja.asd b/aggressive-murja.asd
index 424becd..1c5f099 100644
--- a/aggressive-murja.asd
+++ b/aggressive-murja.asd
@@ -34,10 +34,15 @@
 		  :components
 		  ((:file "post-db")))
 
+		 (:module "media"
+		  :components
+		  ((:file "media-db")))
+
 		 (:module "routes"
 		  :components
 		  ((:file "login-routes")
 		   (:file "post-routes")
+		   (:file "media-routes")
 		   (:file "root-routes")))
 		 (:file "main")))))
 
diff --git a/resources/sql/media-fns.sql b/resources/sql/media-fns.sql
new file mode 100644
index 0000000..d31bc10
--- /dev/null
+++ b/resources/sql/media-fns.sql
@@ -0,0 +1,19 @@
+-- name: insert-media
+-- returns: :array-hash
+insert into blog.media (name, data) values (:name, :data) returning id;
+
+-- name: get-media :? :1
+-- returns: :array-hash
+select name, data from blog.media where id = $1§::uuid ;
+
+-- name: list-pictures*
+-- returns: :array-hash
+select id, name from blog.media;
+
+-- name: delete-picture* :!
+-- returns: :array-hash
+delete from blog.media where id = $1§;
+
+-- name: select-referencing-posts* :?
+-- returns: :array-hash
+select * from blog.media_post_pairing where media_id = $1§;
diff --git a/src/media/media-db.lisp b/src/media/media-db.lisp
new file mode 100644
index 0000000..39c685d
--- /dev/null
+++ b/src/media/media-db.lisp
@@ -0,0 +1,14 @@
+(defpackage :murja.media.media-db
+  (:use :cl :postmodern)
+  (:import-from :com.inuoe.jzon :parse)
+  (:import-from :halisql :defqueries)
+  (:import-from :lisp-fixup :fix-timestamp)
+  (:export))
+
+(in-package :murja.media.media-db)
+
+(defqueries "media-fns")
+
+(defun list-pictures ()
+  (list-pictures*))
+  
diff --git a/src/routes/media-routes.lisp b/src/routes/media-routes.lisp
new file mode 100644
index 0000000..c0c3d19
--- /dev/null
+++ b/src/routes/media-routes.lisp
@@ -0,0 +1,21 @@
+(defpackage murja.routes.media-routes
+  (:use :cl)
+  (:import-from :com.inuoe.jzon :stringify)
+  (:import-from :murja.middleware.db :@transaction)
+  (:import-from :murja.media.media-db :list-pictures)
+   
+  (:import-from :murja.middleware.json :@json)
+  (:import-from :murja.middleware.auth :@authenticated :@can? :*user*)
+  (:import-from :easy-routes :defroute))
+
+(in-package :murja.routes.media-routes)
+
+(defroute all-pics ("/api/pictures/list/all" :method :get
+					     :decorators (@transaction
+							  @authenticated
+							  (@can? "create-post"))) ()
+    (let ((pics (list-pictures)))
+      (if pics
+	  (stringify pics)
+	  "[]")))
+      
diff --git a/src/routes/root-routes.lisp b/src/routes/root-routes.lisp
index e56533b..43a20ad 100644
--- a/src/routes/root-routes.lisp
+++ b/src/routes/root-routes.lisp
@@ -54,7 +54,7 @@
 							   :decorators (@json)) ()
   "{\"time-format\":\"dd.MM.yyyy HH:mm\",\"blog-title\":\"Murja.dev @ $HOSTNAME\",\"recent-post-count\":6,\"xss-filter-posts?\":false}")
 
-(defroute resources ("/resources/:file" :method :get) ()
+(defun get-resource (file)
   (let ((path (gethash file *allowed-resources*)))
     (if path
 	(let ((source (lisp-fixup:slurp-utf-8 path)))
@@ -63,13 +63,14 @@
 	(progn
 	  (setf (hunchentoot:return-code*) 404)
 	  ""))))
+(defroute resources ("/resources/:file" :method :get) ()
+  (get-resource file))
 
-(defroute root ("/" :method :get) ()
-  ;; (let ((css-file (asdf:system-relative-pathname halisql:*system-name*
-  ;; 						 "resources/css/murja.css"))
-  ;; 	(js-file (asdf:system-relative-pathname halisql:*system-name*
-  ;; 						"resources/js/murja.js")))
-"<!DOCTYPE html>
+;; (defroute resources ("/blog/resources/:file" :method :get) ()
+;;   (get-resource file))
+
+(defvar *root* 
+  "<!DOCTYPE html>
 <html xmlns:of=\"http://ogp.me/ns#\"
       xmlns:fb=\"http://www.facebook.com/2008/fbml\">
   <head>
@@ -79,9 +80,15 @@
     <script src=\"/resources/murja.js\"></script>
   </head>
   <body>
-    <script src=\"resources/murja-helper.js\"></script>
+    <script src=\"/resources/murja-helper.js\"></script>
     <div id=\"#app\" />
   </body>
 </html>")
 
+(defroute root ("/" :method :get) ()
+  *root*)
+
+(defroute mediamgr ("/blog/mediamanager" :method :get) ()
+  *root*)
+