@@ -688,6 +688,45 @@
;; (map (lambda (stat)
;; (conc "
" (car stat) " | " (cadr stat) " |
"))
;; stats)
;; " ")
;; "")))
+;;
+;; ;; http-server send-response
+;; ;; api:process-request
+;; ;; db:*
+;; ;;
+;; ;; NB// Runs on the server as part of the server loop
+;; ;;
+;; (define (api:process-request dbstruct $) ;; the $ is the request vars proc
+;; (debug:print 4 *default-log-port* "server-id:" *server-id*)
+;; (let* ((cmd ($ 'cmd))
+;; (paramsj ($ 'params))
+;; (key ($ 'key))
+;; (params (db:string->obj paramsj transport: 'http))) ;; incoming data from the POST (or is it a GET?)
+;; (debug:print 4 *default-log-port* "cmd:" cmd " with params " params "key " key)
+;; (if (equal? key *server-id*)
+;; (begin
+;; (set! *api-process-request-count* (+ *api-process-request-count* 1))
+;; (let* ((resdat (api:execute-requests dbstruct (vector cmd params))) ;; process the request, resdat = #( flag result )
+;; (success (vector-ref resdat 0))
+;; (res (vector-ref resdat 1))) ;; (vector flag payload), get the payload, ignore the flag (why?)
+;; (debug:print 4 *default-log-port* "res:" res)
+;; (if (not success)
+;; (debug:print 0 *default-log-port* "ERROR: success flag is #f for " cmd " with params " params))
+;; (if (> *api-process-request-count* *max-api-process-requests*)
+;; (set! *max-api-process-requests* *api-process-request-count*))
+;; (set! *api-process-request-count* (- *api-process-request-count* 1))
+;; ;; This can be here but needs controls to ensure it doesn't run more than every 4 seconds
+;; ;; (rmt:dat->json-str
+;; ;; (if (or (string? res)
+;; ;; (list? res)
+;; ;; (number? res)
+;; ;; (boolean? res))
+;; ;; res
+;; ;; (list "ERROR, not string, list, number or boolean" 1 cmd params res)))))
+;; (db:obj->string res transport: 'http)))
+;; (begin
+;; (debug:print 0 *default-log-port* "Server refused to process request. Server id mismatch. recived " key " expected: " *server-id* ".\nOther arguments recived: cmd=" cmd " params = " params)
+;; (db:obj->string (conc "Server refused to process request server-id mismatch: " key ", " *server-id*) transport: 'http)))))
+;;
;;