| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- (in-package :cl-user)
- (defpackage chatikbot.plugins.ofd
- (:use :cl :chatikbot.common :alexandria))
- (in-package :chatikbot.plugins.ofd)
- (defparameter +api-root+ "https://proverkacheka.nalog.ru:9999/v1/")
- (defmethod poller-request ((module (eql :ofd)) method &rest params)
- (handler-case
- (json-request (concatenate 'string +api-root+ method)
- :basic-auth *poller-token*
- :headers '((:device-id . "bot") (:device-os . "lisp"))
- :parameters (rest-parameters params t))
- (dex:http-request-failed (e) e)))
- (defmethod poller-validate ((module (eql :ofd)) response)
- (not (typep response 'dex:http-request-failed)))
- (defmethod poller-get-token ((module (eql :ofd)) secret)
- (let* ((*poller-token* secret))
- (ignore-errors
- (poller-request :ofd "mobile/users/login")
- *poller-token*)))
- (defun auth (user pass)
- (poller-authenticate :ofd (cons user pass)))
- (defun cheque-check (fn fd fp n date sum)
- (handler-case
- (let ((res (poller-call :ofd
- (format nil "ofds/*/inns/*/fss/~A/operations/~A/tickets/~A" fn n fd)
- :|fiscalSign| fp
- :|date| date
- :|sum| sum)))
- (typecase res
- (dex:http-request-not-acceptable nil)
- (t (error res))))
- (end-of-file () t)))
- (defun cheque-get (fn fd fp)
- (handler-case
- (let ((res (poller-call :ofd
- (format nil "inns/*/kkts/*/fss/~A/tickets/~A" fn fd)
- :|fiscalSign| fp
- :|sendToEmail| "no")))
- (typecase res
- (list (agets res "document" "receipt"))
- (dex:http-request-not-acceptable nil)
- (t res)))
- (end-of-file () nil)))
|