Browse Source

integrate Meilisearch into /rename/archive-entry defroute.

The defroute to update the thumbnail doesn't need to change but I added a
comment to make it clear in the future -- I can see me forgetting it doesn't
need updating and try to add code which doesn't need to exist.

I, also, did a bit of updating to the layout of the code is parts -- mostly when
setting the alert message.
stable
Craig Oates 2 years ago
parent
commit
5d853592bf
  1. 167
      src/web.lisp

167
src/web.lisp

@ -1161,47 +1161,43 @@
(:administrator)
;; Authorised
(cond ((utils:string-is-nil-or-empty? archive-slug)
(utils:set-alert "No archive slug provided. Thumbnail not updated."
"missing-data")
(utils:set-alert
"No archive slug provided. Thumbnail not updated."
"missing-data")
(redirect "/user/archive"))
((null (nera:get-archive-entry :slug archive-slug))
(utils:set-alert "Cannot file thumbnail's archive entry. Nothing updated."
"missing-data")
(utils:set-alert
"Cannot file thumbnail's archive entry. Nothing updated."
"missing-data")
(redirect "/user/archive"))
((not (str:contains? "image" (caddr thumbnail-file) :ignore-case t))
(utils:set-alert "File uploaded is not an image. Thumbnail not updated."
"invalid-data")
(utils:set-alert
"File uploaded is not an image. Thumbnail not updated."
"invalid-data")
(redirect (format nil "/edit/archive/~a" archive-slug)))
(t (storage:remove-file "" "archive"
(archive::thumbnail-slug-of
(nera:get-archive-entry :slug archive-slug)))
(storage:store-file "" "archive"
(cadr thumbnail-file)
thumbnail-file)
(nera:update-archive-entry-property
:slug archive-slug
:property 'archive::thumbnail-file-type-of
:value (caddr thumbnail-file))
(nera:update-archive-entry-property
:slug archive-slug
:property 'archive::thumbnail-slug-of
:value (cadr thumbnail-file))
(utils:create-thumbnail
"archive"
(archive::thumbnail-slug-of
(nera:get-archive-entry :slug archive-slug))
t)
;; Integrate updating Meilisearch here.
(t (let ((archive-entry (nera:get-archive-entry :slug archive-slug)))
(storage:remove-file
"" "archive" (archive::thumbnail-slug-of archive-entry))
(storage:store-file
"" "archive" (cadr thumbnail-file) thumbnail-file)
(nera:update-archive-entry-property
:slug archive-slug
:property 'archive::thumbnail-file-type-of
:value (caddr thumbnail-file))
(nera:update-archive-entry-property
:slug archive-slug
:property 'archive::thumbnail-slug-of
:value (cadr thumbnail-file))
(utils:create-thumbnail
"archive" (archive::thumbnail-slug-of archive-entry) t)
;; Meilisearch DB doesn't need updating because nothing
;; has changed from its perspective.
(utils:set-alert "Thumbnail updated." "success")
(redirect (format nil "/edit/archive/~a" archive-slug))))
(redirect (format nil "/edit/archive/~a" archive-slug)))))
;; Not Authorised
(progn (utils:set-alert "You are not authorised to delete this archive entry."
"error")
(progn (utils:set-alert
"You are not authorised to delete this archive entry."
"error")
(redirect "/login")))))))
(defroute ("/rename/archive-entry" :method :POST) ()
@ -1214,39 +1210,50 @@
(:administrator)
;; Authorised
(cond ((find t (mapcar #'utils:string-is-nil-or-empty?
`(,id ,archive-slug ,new-title)))
(utils:set-alert "Title and meta-data not provided. Archive entry not renamed."
"missing-data")
`(,id ,archive-slug ,new-title)))
(utils:set-alert
"Title and meta-data not provided. Archive entry not renamed."
"missing-data")
(redirect "/user/archive"))
((null (nera:get-archive-entry :slug archive-slug))
(utils:set-alert "Cannot file archive entry. Archive entry not updated."
"invalid-data")
(utils:set-alert
"Cannot file archive entry. Archive entry not updated."
"invalid-data")
(redirect "/user/archive"))
(t (storage:rename-content-file
"" "archive"
(archive::slug-of (nera:get-archive-entry :id (parse-integer id)))
(utils:format-filename (format nil "~a.html" new-title)))
(nera:update-archive-entry-property
:slug archive-slug
:property 'archive::title-of
:value new-title)
(nera:update-archive-entry-property
:slug archive-slug
:property 'archive::slug-of
:value (utils:format-filename (format nil "~a.html" new-title)))
;; Integrate updating Meilisearch here.
(utils:set-alert "Archive entry updated." "success")
(redirect
(format nil
"/edit/archive/~a"
(utils:format-filename (format nil "~a.html" new-title))))))
(t (let ((archive-entry
(nera:get-archive-entry :id (parse-integer id))))
(storage:rename-content-file
"" "archive" (archive::slug-of archive-entry)
(utils:format-filename (format nil "~a.html" new-title)))
(nera:update-archive-entry-property
:slug archive-slug
:property 'archive::title-of
:value new-title)
(nera:update-archive-entry-property
:slug archive-slug
:property 'archive::slug-of
:value (utils:format-filename (format nil "~a.html" new-title)))
(search:submit-entry
(search:build-payload
(archive::search-id-of archive-entry)
new-title
(format nil "view/archive/~a.html"
(utils:slugify new-title))
(format nil
"storage/thumb/archive/~a.html"
(utils:slugify new-title))
(mito.dao.mixin:object-created-at archive-entry)
(archive::keywords-of archive-entry)))
(utils:set-alert "Archive entry updated." "success")
(redirect
(format nil
"/edit/archive/~a"
(utils:format-filename
(format nil "~a.html" new-title)))))))
;; Not Authorised
(progn (utils:set-alert "You are not authorised to delete this archive entry."
"error")
(progn (utils:set-alert
"You are not authorised to delete this archive entry."
"error")
(redirect "/login")))))))
(defroute ("/edit/archive-keywords" :method :POST) ()
@ -1312,27 +1319,28 @@
(:administrator)
;; Authorised
(cond ((utils:string-is-nil-or-empty? slug)
(utils:set-alert "Cannot find archive entry in database. Nothing deleted."
"missing-data")
(utils:set-alert
"Cannot find archive entry in database. Nothing deleted."
"missing-data")
(redirect "/user/archive"))
((and (null (storage:file-exists-p "" "archive" slug))
(null (nera:get-archive-entry :slug slug)))
(utils:set-alert "Unable to find archive entry. Nothing deleted."
"invalid-data")
(utils:set-alert
"Unable to find archive entry. Nothing deleted."
"invalid-data")
(redirect "/user/archive"))
((and (null (storage:file-exists-p "" "archive" slug))
(not (null (nera:get-archive-entry :slug slug))))
(nera:delete-archive-entry :slug slug)
(utils:set-alert "Couldn't find archive entry files. Deleted from database only."
"invalid-data")
(utils:set-alert
"Couldn't find archive entry files. Deleted from database only."
"invalid-data")
(redirect "/user/archive"))
((and (not (null (storage:file-exists-p "" "archive" slug)))
(null (nera:get-archive-entry :slug slug)))
(utils:set-alert "Couldn't find archive entry in database. Deleted files only."
"invalid-data")
(utils:set-alert
"Couldn't find archive entry in database. Deleted files only."
"invalid-data")
;; The thumbnail in not know about here because it was
;; linked to the text file via the database. You will need
;; to delete the thumbnail manually at this point but the
@ -1340,22 +1348,19 @@
;; was already needed.
(storage:remove-file "" "archive" slug)
(redirect "/user/archive"))
(t (storage:remove-file "" "archive" slug) ; Archive Entry
;; Archive Entry Thumbnail
(t (storage:remove-file "" "archive" slug)
(storage:remove-file
"" "archive" (archive::thumbnail-slug-of
(nera:get-archive-entry :slug slug)))
;; Meilisearch DB Entry
(search:delete-entry
(archive::search-id-of (nera:get-archive-entry :slug slug)))
;; DB Entry
(nera:delete-archive-entry :slug slug)
(utils:set-alert "Archive entry deleted." "success")
(redirect "/user/archive")))
;; Not Authorised
(progn (utils:set-alert "You are not authorised to delete this archive entry."
"error")
(progn (utils:set-alert
"You are not authorised to delete this archive entry."
"error")
(redirect "/login")))))))
(defroute ("/search" :method :GET) ()

Loading…
Cancel
Save