42 lines
1.4 KiB
Common Lisp
42 lines
1.4 KiB
Common Lisp
(ql:quickload :shasht)
|
|
(ql:quickload :dexador)
|
|
(ql:quickload :str)
|
|
|
|
(defparameter *api-key* "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ6ZW5vbiIsImNyZWF0ZWQiOjE2NzMxMDcyNDQ1NDgsImFwaSI6InB1YmxpYyIsImV4cCI6MTgzMDg5NTI0NCwianRpIjoiZGI3MzFjN2YtOTQxZi00YTdjLWE0NWQtNzRlODNmODg3MWYwIn0.BpEGtFseUOr6pr_rQcWtndIhaJ8SNqGvFURVFRIdXGqTyqwJC0uG1H3hE-8-QTnTGGEdA4-HQizzC3hLNo0OEQ")
|
|
(defparameter *base-url* "https://agoradesk.com/api/v1")
|
|
|
|
(defmacro with-data (&body body)
|
|
`(gethash "data"
|
|
(shasht:read-json ,@body)))
|
|
|
|
(defmacro with-authorization (type endpoint &body body)
|
|
`(,type (str:join "" (list *base-url* ,endpoint))
|
|
:headers (list (cons "User-Agent" "curl/7.87.0")
|
|
(cons "Authorization" *api-key*)
|
|
(cons "Content-Type" "application/json"))
|
|
:content ,@body))
|
|
|
|
(defun get-user-info (user)
|
|
(shasht:read-json
|
|
(dex:get (format nil "https://agoradesk.com/api/v1/account_info/~a" user))))
|
|
|
|
(defun get-myself ()
|
|
(with-data (with-authorization dex:get "/myself" ())))
|
|
|
|
(defun get-notifications ()
|
|
(with-data (with-authorization dex:get "/notifications" ())))
|
|
|
|
(defun get-ads ()
|
|
(with-data (with-authorization dex:get "/ads" ())))
|
|
|
|
(defun get-ad-by-id (id)
|
|
(with-data
|
|
(aref
|
|
(gethash "ad_list"
|
|
(with-data (with-authorization dex:get (format nil "/ad-get/~a" id) ())))
|
|
0)))
|
|
|
|
(defun duplicate-ad (id &optional country-code currency))
|
|
|
|
(defun post-ad ())
|