diff of 774698a49ffcc2ff284d309e26f90bc95f4300e8
774698a49ffcc2ff284d309e26f90bc95f4300e8
diff --git a/resources/sql/post-fns.sql b/resources/sql/post-fns.sql
index df2103c..9d29e8c 100644
--- a/resources/sql/post-fns.sql
+++ b/resources/sql/post-fns.sql
@@ -15,7 +15,7 @@ SELECT p.Title AS "Title",
EXTRACT(MONTH FROM p.created_at) AS "Month",
EXTRACT(YEAR FROM p.created_at) AS "Year",
p.id as "Id",
- p.Tags as "Tags"
+ p.Tags as "Tags", p.hidden, p.unlisted
FROM blog.Post p
WHERE $1 OR (NOT p.unlisted AND NOT p.hidden)
ORDER BY p.created_at DESC;
@@ -35,7 +35,7 @@ SELECT p.ID,
'img_location',
u.Img_location) as "creator",
(SELECT MAX(version) + 1 FROM blog.Post_History phh WHERE (phh.id = p.id AND ((not phh.unlisted) OR $2) AND ((not phh.hidden) OR $2))) AS version,
- json_agg(DISTINCT version) as "versions"
+ json_agg(DISTINCT version) as "versions", p.hidden, p.unlisted
FROM blog.Post p
JOIN blog.Users u ON u.ID = p.creator_id
LEFT JOIN blog.Post_History ph ON (ph.id = p.id AND ((not ph.unlisted) OR $2) AND ((not ph.hidden) OR $2))
@@ -52,7 +52,7 @@ SELECT p.ID, p.Title, p.created_at, p.Content, p.tags, p.version, 0 AS "amount-o
u.Nickname,
'img_location',
u.Img_location) as "creator",
- json_agg(DISTINCT ph.version) as "versions"
+ json_agg(DISTINCT ph.version) as "versions", p.hidden, p.unlisted
FROM blog.Post_History p
JOIN blog.Users u ON u.ID = p.creator_id
LEFT JOIN blog.Post_History ph ON (ph.id = p.id AND (not ph.unlisted) AND (not ph.hidden))
@@ -61,7 +61,7 @@ GROUP BY p.ID, p.Title, p.created_at, p.Content, p.tags, p.version, "amount-of-c
-- name: get-all*
-SELECT p.id, p.Title, p.Content, p.created_at, p.tags, u.Username, u.Nickname, u.Img_location, COUNT(c.ID) AS "amount-of-comments"
+SELECT p.id, p.Title, p.Content, p.created_at, p.tags, u.Username, u.Nickname, u.Img_location, COUNT(c.ID) AS "amount-of-comments", p.hidden, p.unlisted
FROM blog.Post p
JOIN blog.Users u ON u.ID = p.creator_id
LEFT JOIN blog.Comment c ON c.parent_post_id = p.ID
@@ -78,7 +78,7 @@ ORDER BY p.created_at DESC
-- $3 == show-hidden?
-- name: get-page*
-- returns: :array-hash
-SELECT p.ID, p.Title, p.Content, p.created_at, p.tags, COUNT(c.ID) AS "amount-of-comments", json_build_object('username', u.Username, 'nickname', u.Nickname, 'img_location', u.Img_location) as "creator", json_agg(DISTINCT version) as "versions"
+SELECT p.ID, p.Title, p.Content, p.created_at, p.tags, COUNT(c.ID) AS "amount-of-comments", json_build_object('username', u.Username, 'nickname', u.Nickname, 'img_location', u.Img_location) as "creator", json_agg(DISTINCT version) as "versions", p.hidden, p.unlisted
FROM blog.Post p
JOIN blog.Users u ON u.ID = p.creator_id
LEFT JOIN blog.Comment c ON c.parent_post_id = p.ID
@@ -134,7 +134,7 @@ WHERE p.tags ? 'landing-page' AND NOT p.hidden;
-- name: get-tagged*
-- returns: :array-hash
-SELECT p.ID, p.Title, p.Content, p.created_at, p.tags, 0 AS "amount-of-comments", json_build_object('username', u.Username, 'nickname', u.Nickname, 'img_location', u.Img_location) as "creator", json_agg(DISTINCT version) as "versions"
+SELECT p.ID, p.Title, p.Content, p.created_at, p.tags, 0 AS "amount-of-comments", json_build_object('username', u.Username, 'nickname', u.Nickname, 'img_location', u.Img_location) as "creator", json_agg(DISTINCT version) as "versions", p.hidden, p.unlisted
FROM blog.Post p
JOIN blog.Users u ON u.ID = p.creator_id
LEFT JOIN blog.Post_History ph ON ph.id = p.id
diff --git a/src/migration-list.lisp b/src/migration-list.lisp
index a14d5d8..9e8321e 100644
--- a/src/migration-list.lisp
+++ b/src/migration-list.lisp
@@ -29,7 +29,9 @@
"Playwright-user"
"playwrighte"
""
- (sha-512 "p4ssw0rd")))))))
+ (sha-512 "p4ssw0rd")))))
+ (postmodern:execute "INSERT INTO blog.GroupMapping(userid, groupid, primarygroup) VALUES ($1, (SELECT id FROM blog.UserGroup WHERE name = 'Users'), true)" user-id)
+ (postmodern:execute "INSERT INTO blog.GroupMapping(userid, groupid, primarygroup) VALUES ($1, (SELECT id FROM blog.UserGroup WHERE name = 'Admins'), true)" user-id)))
(deflispmigration _ "e2e-migration"
(declare (ignore _))
diff --git a/src/routes/post-routes.lisp b/src/routes/post-routes.lisp
index 512038d..2c52a2c 100644
--- a/src/routes/post-routes.lisp
+++ b/src/routes/post-routes.lisp
@@ -61,8 +61,13 @@
(defroute unhidden-post ("/api/posts/post/:id" :method :get :decorators (@json
@transaction)) ()
(let* ((post (get-post id)))
- (log:info "returning unhidden post { ~{~a~%~} }~%" (alexandria:hash-table-alist post))
- (stringify post)))
+ (if post
+ (progn
+ (log:info "returning unhidden post { ~{~a~%~} }~%" (alexandria:hash-table-alist post))
+ (stringify post))
+ (progn
+ (setf (hunchentoot:return-code*) 404)
+ ""))))
(defroute tagged-posts-route ("/api/posts/tagged/:tag" :method :get
:decorators (@json
@@ -77,7 +82,7 @@
@authenticated
(@can? "create-post"))) ()
(let ((creator-id (gethash "id" *user*)))
- (prin1-to-string (caar (murja.posts.post-db:insert-post "New title" "New post" creator-id "[]")))))
+ (prin1-to-string (caar (murja.posts.post-db:insert-post "New title" "New post" creator-id "[]" t nil)))))
(defroute post-update-route ("/api/posts/post" :method :put
:decorators (@json
@@ -92,8 +97,10 @@
(coerce
(gethash "tags" request-body) 'list))
#())))
- (post-id (gethash "id" request-body)))
+ (post-id (gethash "id" request-body))
+ (hidden (gethash "hidden" request-body))
+ (unlisted (gethash "unlisted" request-body)))
(log:info "updating post ~d" post-id)
- (murja.posts.post-db:update-post title content tags post-id)
+ (murja.posts.post-db:update-post title content tags hidden unlisted post-id)
""))