Update API
This commit is contained in:
parent
409897562c
commit
b35687d51b
3 changed files with 17 additions and 34 deletions
|
@ -4,25 +4,7 @@
|
|||
|
||||
(defclass api ()
|
||||
((gm
|
||||
:initform (make-instance 'game-manager))
|
||||
(games-syn
|
||||
:initform '())))
|
||||
|
||||
|
||||
(defmethod create-syn ((api api) game-id &optional (initial-value 0))
|
||||
(unless (eq nil (get-syn api game-id)) (error "This game ~a already have a syn !" game-id))
|
||||
(with-slots (games-syn) api
|
||||
(push (list :game-id game-id :syn initial-value) games-syn)
|
||||
initial-value))
|
||||
|
||||
(defmethod refresh-syn ((api api) game-id)
|
||||
(with-slots (games-syn) api
|
||||
(incf (getf (first (remove-if-not #'(lambda (entry) (eql game-id (getf entry :game-id))) games-syn)) :syn))))
|
||||
|
||||
(defmethod get-syn ((api api) game-id)
|
||||
(with-slots (games-syn) api
|
||||
(getf (first (remove-if-not #'(lambda (entry) (eql game-id (getf entry :game-id))) games-syn)) :syn)))
|
||||
|
||||
:initform (make-instance 'game-manager))))
|
||||
|
||||
|
||||
;;; TODO: Handle errors (valid json etc..)
|
||||
|
@ -34,12 +16,11 @@
|
|||
|
||||
(defmethod handle-new-game ((api api) data)
|
||||
(with-slots (gm) api
|
||||
(let* ((game-id (create-game gm))
|
||||
(game-syn (create-syn api game-id 1))) ; Create syn with 1 (since first packet already receive)
|
||||
(let* ((game-id (create-game gm)))
|
||||
(let ((game-dump (dump gm game-id)))
|
||||
(setf (getf game-dump :game-over) :null) ; Define nil as null (for json)
|
||||
(to-json
|
||||
(append (list :type "state" :syn game-syn) game-dump))))))
|
||||
(append (list :type "state") game-dump))))))
|
||||
|
||||
;;; TODO: RETURN JSON !!!!
|
||||
(defmethod handle-update ((api api) data)
|
||||
|
@ -55,7 +36,8 @@
|
|||
(t (setf dir nil)))
|
||||
(if dir
|
||||
(refresh game :dir dir)
|
||||
(refresh game)))))
|
||||
(refresh game))
|
||||
(append (list :type "update") (dump gm game-id)))))
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue