From 142166df54eda65925921799a4bb3e7f6cdaba48 Mon Sep 17 00:00:00 2001 From: ckonstanski Date: Tue, 6 Feb 2018 21:42:54 -0700 Subject: initial commit --- service/rest-service.lisp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 service/rest-service.lisp (limited to 'service/rest-service.lisp') diff --git a/service/rest-service.lisp b/service/rest-service.lisp new file mode 100644 index 0000000..4041da0 --- /dev/null +++ b/service/rest-service.lisp @@ -0,0 +1,33 @@ +;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- +(declaim (optimize (speed 0) (safety 3) (debug 3))) + +(in-package #:music-dispensary) + +;; ========================================================================== ;; + +(defclass rest-service (base-service) + ((location :initarg :location + :initform nil + :accessor location) + (location-p :initarg :location-p + :initform t + :accessor location-p) + (errormsg :initarg :errormsg + :initform nil + :accessor errormsg) + (message :initarg :message + :initform nil + :accessor message)) + (:documentation "")) + +(defmethod initialize-instance :after ((rest-service rest-service) &key) + (when (and (location-p rest-service) (null (location rest-service))) + (setf (location rest-service) (type-to-path rest-service)) + (setf (session-value :location) (location rest-service)))) + +(defun location-json () + (let ((location (if (session-value :location) (session-value :location) "/home"))) + (format nil "{\"location\":\"~a\"}" location))) + +(defun type-to-path (rest-type) + (concatenate 'string "/" (ppcre:regex-replace "-" (string-downcase (type-of rest-type)) "/"))) -- cgit v1.3