;; -*- mode: scheme; -*-
;; Little Canvas Engine Copyright (C) 2013 Dave Griffiths
;;
;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU Affero General Public License as
;; published by the Free Software Foundation, either version 3 of the
;; License, or (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU Affero General Public License for more details.
;;
;; You should have received a copy of the GNU Affero General Public License
;; along with this program.  If not, see <http://www.gnu.org/licenses/>.

;; server comms

(js "$.ajaxSetup ({ cache: false })")

  ;; hack together a js object to send
(define (build-url-args args)
  (foldl
   (lambda (i r) (js "r[i[0]]=i[1]") r)
   (js "{}") args))

(define (server-call name argsl)
  (let ((args (build-url-args argsl)))
    (set! args.fn name)
    (let ((v ($.get "game" args)))
      (v.fail (lambda (jqXHR textStatus errorThrown)
                (msg textStatus)
                (msg errorThrown))))))

(define (server-call-ret name argsl f)
  (let ((args (build-url-args argsl)))
    (set! args.fn name)
    (let ((v ($.get "game" args f)))
      (v.fail (lambda (jqXHR textStatus errorThrown)
                (msg textStatus)
                (msg errorThrown))))))
