The erjoalgo-webutil Reference Manual

This is the erjoalgo-webutil Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:21:47 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 erjoalgo-webutil

Framework for defining [oauth] http api client & sever.

Author

Ernesto Alfonso <>

License

GPLv3

Dependencies
  • cl-json (system).
  • drakma (system).
  • cl-ppcre (system).
  • hunchentoot (system).
  • gzip-stream (system).
  • vom (system).
  • fiasco (system).
Source

erjoalgo-webutil.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 erjoalgo-webutil/erjoalgo-webutil.asd

Source

erjoalgo-webutil.asd.

Parent Component

erjoalgo-webutil (system).

ASDF Systems

erjoalgo-webutil.


3.1.2 erjoalgo-webutil/packages.lisp

Source

erjoalgo-webutil.asd.

Parent Component

erjoalgo-webutil (system).

Packages

erjoalgo-webutil.


3.1.3 erjoalgo-webutil/util.lisp

Dependency

packages.lisp (file).

Source

erjoalgo-webutil.asd.

Parent Component

erjoalgo-webutil (system).

Public Interface

3.1.4 erjoalgo-webutil/json.lisp

Dependency

util.lisp (file).

Source

erjoalgo-webutil.asd.

Parent Component

erjoalgo-webutil (system).

Public Interface

3.1.5 erjoalgo-webutil/http.lisp

Dependency

json.lisp (file).

Source

erjoalgo-webutil.asd.

Parent Component

erjoalgo-webutil (system).

Public Interface
Internals

3.1.6 erjoalgo-webutil/api-client.lisp

Dependency

http.lisp (file).

Source

erjoalgo-webutil.asd.

Parent Component

erjoalgo-webutil (system).

Public Interface
Internals

3.1.7 erjoalgo-webutil/defendpoint.lisp

Dependency

api-client.lisp (file).

Source

erjoalgo-webutil.asd.

Parent Component

erjoalgo-webutil (system).

Public Interface

defendpoint (macro).


3.1.8 erjoalgo-webutil/oauth.lisp

Dependency

defendpoint.lisp (file).

Source

erjoalgo-webutil.asd.

Parent Component

erjoalgo-webutil (system).

Public Interface
Internals

3.1.9 erjoalgo-webutil/site-integrations.lisp

Dependency

oauth.lisp (file).

Source

erjoalgo-webutil.asd.

Parent Component

erjoalgo-webutil (system).

Public Interface
Internals

google-current-session-user-email (function).


4 Packages

Packages are listed by definition order.


4.1 erjoalgo-webutil

Source

packages.lisp.

Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Special variables

Special Variable: *api-base-url*

default base url used by api-req

Package

erjoalgo-webutil.

Source

api-client.lisp.

Special Variable: *api-req-retry-count*

default retry count used by api-req

Package

erjoalgo-webutil.

Source

api-client.lisp.

Special Variable: *google-login*
Package

erjoalgo-webutil.

Source

site-integrations.lisp.

Special Variable: *sexchange-login*
Package

erjoalgo-webutil.

Source

site-integrations.lisp.

Special Variable: google-login-key
Package

erjoalgo-webutil.

Source

site-integrations.lisp.

Special Variable: sexchange-login-key
Package

erjoalgo-webutil.

Source

site-integrations.lisp.


5.1.2 Macros

Macro: -> (&rest forms)

Threading macro.

Package

erjoalgo-webutil.

Source

util.lisp.

Macro: ->> (&rest forms)
Package

erjoalgo-webutil.

Source

util.lisp.

Macro: -json-get-nested (alist path)

Macro-version of JSON-GET-NESTED. Only macroexpands if PATH is a string known at compile time.

Package

erjoalgo-webutil.

Source

json.lisp.

Macro: -params (&rest flat)

Convert a flat list of key-value pairs into an alist.

Package

erjoalgo-webutil.

Source

http.lisp.

Macro: alist-get (alist item)

get ITEM in ALIST

Package

erjoalgo-webutil.

Source

util.lisp.

Macro: check-nonnil (form)

Asserts a form is non-nil.

Package

erjoalgo-webutil.

Source

http.lisp.

Macro: defendpoint (name &key base-url req-update method resource make-http-request-extra-args depaginator authenticator api-req-extra-args-compile-time)

Defines a function FUN-SYM that calls an api-endpoint.

DEFAULT-PARAMS specifies defaults parameters used in the request unless overridden later by the caller.

Package

erjoalgo-webutil.

Source

defendpoint.lisp.

Macro: defroutes (var &rest routes)

Define a hunchentoot dispatch table VAR of http routes.
Each route has the form (ALLOWED-METHODS URI-REGEXP . CAPTURE-NAMES):

ALLOWED-METHODS may be a list of http verbs as in (:GET :POST), or the special value t which matches any verb.

URI-REGEXP and CAPTURE-NAMES are used to match against the request path and capture path variables. They correspond to the REGEX and VAR-LIST parameters in PPCRE:REGISTER-GROUPS-BIND.

For example,
- URI-REGEXP "/user/([0-9]+)/product/([0-9]+)"
- CAPTURE-NAMES (user-id product-id)
would capture the user-id and product-id path variables of requests matching the given path regexp.

- CAPTURE-NAMES could also have the form
((#’PARSE-INTEGER UNIQUE-ID) (#’PARSE-INTEGER PRODUCT-ID))
as supported by PPCRE:REGISTER-GROUPS-BIND.

Package

erjoalgo-webutil.

Source

http.lisp.

Macro: make-from-json-alist (json-alist type)

Make an instance of type TYPE from a cl-json-decoded JSON-ALIST.

Package

erjoalgo-webutil.

Source

json.lisp.

Macro: retry-times (n timeout-secs &body body)

Retry form N times, with each retry timed out at TIMEOUT-SECS. An error is raised only after all retries have been exhausted.

Package

erjoalgo-webutil.

Source

http.lisp.

Macro: slot-value-> (obj slots)
Package

erjoalgo-webutil.

Source

util.lisp.

Macro: when-let (bindings &body body)
Package

erjoalgo-webutil.

Source

util.lisp.

Macro: with-gensyms (syms &body body)
Package

erjoalgo-webutil.

Source

util.lisp.

Macro: with-json-paths (obj var-paths &body body)

Let-bind certain json paths within json OBJ.
VAR-PATHS has the form (VAR JSON-PATH). See test for examples.

Package

erjoalgo-webutil.

Source

json.lisp.


5.1.3 Ordinary functions

Reader: api-login-client (instance)
Writer: (setf api-login-client) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

client.

Function: api-req (http-request &key authenticator depaginator max-pages token-refresh-p retry-count retry-delay api-base-url content-type-override)

Make a REST api request to the URL: (CONCAT API-BASE-URL RESOURCE)
with query parameters PARAMS-ALIST. (Note that no slash is added in between.) Retry RETRY-COUNT times with a delay of RETRY-DELAY seconds
after each retry in case of network errors.

Returns values (DECODED-JSON RESP-CODE RESP-STRING)

- DECODED-JSON is a json object decoded via cl-json
- HTTP-RESP-CODE is the http response code as a number
- RESP-STRING is the raw response string before cl-json decoding

If DEPAGINATE is non-nil, attempt to depaginate the requested resource
by making several requests. If DEPAGINATE is a positive number, it specifies the max number of pages to request, otherwise no such limit is imposed.

When depagination is on:

- DECODED-JSON object is a list of resources across all requesed pages.
- RETRY-COUNT applies to each page request.
- RESP-STRING, HTTP-RESP-CODE values are based on the last retrieved page.
- A fourth value ERROR is returned. Any non-2xx response code or persistent network error short-circuits depagination: partial results are returned
and details of the error are stored in ERROR

When AUTO-REFRESH-P is non-nil, an one-time attempt (per retry) is made, if possible, to refresh the token on 403 errors.

Package

erjoalgo-webutil.

Source

api-client.lisp.

Function: drakma-json-content-type-hack (&optional remove)

Remove application/json from drakma:*text-content-types*.

Package

erjoalgo-webutil.

Source

http.lisp.

Function: first-file-matching (pathname-maybe-wild)

Locate the first file in DIRECTORY matching the extension EXT.

Package

erjoalgo-webutil.

Source

http.lisp.

Function: google-authenticator (http-request is-refresh-p &key login-key)
Package

erjoalgo-webutil.

Source

site-integrations.lisp.

Function: google-depaginator (resp-body http-request page-idx)
Package

erjoalgo-webutil.

Source

site-integrations.lisp.

Function: google-userinfo-email ()
Package

erjoalgo-webutil.

Source

site-integrations.lisp.

Reader: http-request-qparams (instance)
Writer: (setf http-request-qparams) (instance)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Target Slot

qparams.

Function: hunchentoot-create-oauth-redirect-handler (oauth-client scopes-to-request handler &key oauth-authorize-uri-path scheme login-session-key original-url-session-key on-authenticated-fn)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Function: hunchentoot-make-add-fake-session (data user-agent &key real-remote-addr)

Create a ’fake’ hunchentoot session with mock data DATA as HUNCHENTOOT::SESSION-DATA. Returns (VALUES SESSION COOKIE).

The resulting SESSION will be actived for a given request if:
- request user-agent is USER-AGENT
- request real-remote-addr (IP address?) is REAL-REMOTE-ADDR
- the request contains a header with the name ’cookie’ and value COOKIE

Package

erjoalgo-webutil.

Source

http.lisp.

Function: json-get-nested (alist path)

Get the value in ALIST at the given PATH.

Package

erjoalgo-webutil.

Source

json.lisp.

Function: json-key-to-lisp (key)

Convert a json object KEY string into a lisp identifier name.

Package

erjoalgo-webutil.

Source

json.lisp.

Function: json-path-split (path)

Split a json PATH string into components.

Package

erjoalgo-webutil.

Source

json.lisp.

Function: json-req ()

Obtain the current request payload as a decoded json object.

Package

erjoalgo-webutil.

Source

http.lisp.

Function: json-resp (body &key return-code encoding-fn)

Convert a lisp object into a json response with the appropriate content type to be called within a hunchentoot handler.

Package

erjoalgo-webutil.

Source

http.lisp.

Function: lisp-to-json-key (lisp-identifier)

Convert a LISP-IDENTIFIER string name into a json object key string.

Package

erjoalgo-webutil.

Source

json.lisp.

Function: log-request (context-string &key request)
Package

erjoalgo-webutil.

Source

http.lisp.

Function: make-api-login (&key key token client)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Function: make-directories-recursively (dir &key mode)
Package

erjoalgo-webutil.

Source

util.lisp.

Function: make-http-request (&key method resource qparams additional-headers content rest)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Reader: oauth-client-meta (instance)
Writer: (setf oauth-client-meta) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

meta.

Function: oauth-exchange-code-for-token (code oauth-client &key redirect-uri)

code The authorization code returned from the initial request.
client_id The client ID obtained from the API Console.
client_secret The client secret obtained from the API Console.
redirect_uri One of the redirect URIs listed for your project in the API Console. grant_type As defined in the OAuth 2.0 specification,
this field must contain a value of authorization_code.

Package

erjoalgo-webutil.

Source

oauth.lisp.

Function: oauth-make-client-from-file (filename &key json-path-to-client)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Function: oauth-server-redirect-url (oauth-client local-redirect-uri scopes-to-request)

Example
https://accounts.google.com/o/oauth2/v2/auth? scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.metadata.readonly& access-type=offline&
include-granted-scopes=true& state=state-parameter-passthrough-value& redirect-uri=http%3A%2F%2Foauth2.example.com%2Fcallback& response-type=code&
client-id=client-id

Package

erjoalgo-webutil.

Source

oauth.lisp.

Reader: oauth-token-access-token (instance)
Writer: (setf oauth-token-access-token) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

access-token.

Function: oauth-token-auth-header (oauth-token)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Reader: oauth-token-refresh-token (instance)
Writer: (setf oauth-token-refresh-token) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

refresh-token.

Function: params (&rest flat)

Convert a flat list of key-value pairs into an alist.

Package

erjoalgo-webutil.

Source

http.lisp.

Function: read-file (filename)

Read file contents into a string.

Package

erjoalgo-webutil.

Source

util.lisp.

Function: sexchange-authenticator (http-request is-refresh-p &key login-key)
Package

erjoalgo-webutil.

Source

site-integrations.lisp.

Function: sexchange-depaginator (resp-body http-request page-idx)
Package

erjoalgo-webutil.

Source

site-integrations.lisp.

Function: struct-to-alist (struct)
Package

erjoalgo-webutil.

Source

json.lisp.


5.1.4 Structures

Structure: http-request
Package

erjoalgo-webutil.

Source

api-client.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: method
Package

common-lisp.

Readers

http-request-method.

Writers

(setf http-request-method).

Slot: resource
Readers

http-request-resource.

Writers

(setf http-request-resource).

Slot: qparams
Readers

http-request-qparams.

Writers

(setf http-request-qparams).

Slot: additional-headers
Readers

http-request-additional-headers.

Writers

(setf http-request-additional-headers).

Slot: content
Readers

http-request-content.

Writers

(setf http-request-content).

Slot: rest
Package

common-lisp.

Readers

http-request-rest.

Writers

(setf http-request-rest).


5.2 Internals


5.2.1 Special variables

Special Variable: test-routes
Package

erjoalgo-webutil.

Source

http.lisp.


5.2.2 Macros

Macro: with-mock ((fname fun) &body body)

Shadow the function named fname with fun
Any call to fname within body will use fun, instead of the default function for fname. This macro is intentionally unhygienic:
fun-orig is the anaphor, and can be used in body to access the shadowed function

Package

erjoalgo-webutil.

Source

http.lisp.


5.2.3 Ordinary functions

Function: alist-to-http-params (params)

Convert an lisp alist of key-value pairs PARAMS into drakma-compatible http-params. Later parameters override earlier ones to support multiple levels of customization.

Package

erjoalgo-webutil.

Source

api-client.lisp.

Reader: api-login-key (instance)
Writer: (setf api-login-key) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

key.

Function: api-login-p (object)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Reader: api-login-token (instance)
Writer: (setf api-login-token) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

token.

Function: copy-api-login (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Function: copy-http-request (instance)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Function: copy-oauth-client (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Function: copy-oauth-token (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Function: copy-resp-page (instance)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Function: fetch-token (oauth-client redirect-uri)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Function: google-current-session-user-email (&key email-key)

Return the current authenticated user’s email.
If it does not exist, it is fetched and cached in the session.

Package

erjoalgo-webutil.

Source

site-integrations.lisp.

Reader: http-request-additional-headers (instance)
Writer: (setf http-request-additional-headers) (instance)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Target Slot

additional-headers.

Reader: http-request-content (instance)
Writer: (setf http-request-content) (instance)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Target Slot

content.

Reader: http-request-method (instance)
Writer: (setf http-request-method) (instance)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Target Slot

method.

Function: http-request-p (object)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Reader: http-request-resource (instance)
Writer: (setf http-request-resource) (instance)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Target Slot

resource.

Reader: http-request-rest (instance)
Writer: (setf http-request-rest) (instance)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Target Slot

rest.

Function: make-oauth-client (&key client-id client-secret token-uri scopes auth-uri redirect-uris auth-provider-x-509-cert-url project-id key meta)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Function: make-oauth-token (&key access-token refresh-token expires-in expires token-type error error-description scope obtained-at)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Function: make-resp-page (&key items page-info next-page-token prev-page-token etag kind error)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Reader: oauth-client-auth-provider-x-509-cert-url (instance)
Writer: (setf oauth-client-auth-provider-x-509-cert-url) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

auth-provider-x-509-cert-url.

Reader: oauth-client-auth-uri (instance)
Writer: (setf oauth-client-auth-uri) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

auth-uri.

Reader: oauth-client-client-id (instance)
Writer: (setf oauth-client-client-id) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

client-id.

Reader: oauth-client-client-secret (instance)
Writer: (setf oauth-client-client-secret) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

client-secret.

Reader: oauth-client-key (instance)
Writer: (setf oauth-client-key) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

key.

Function: oauth-client-p (object)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Reader: oauth-client-project-id (instance)
Writer: (setf oauth-client-project-id) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

project-id.

Reader: oauth-client-redirect-uris (instance)
Writer: (setf oauth-client-redirect-uris) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

redirect-uris.

Reader: oauth-client-scopes (instance)
Writer: (setf oauth-client-scopes) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

scopes.

Reader: oauth-client-token-uri (instance)
Writer: (setf oauth-client-token-uri) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

token-uri.

Reader: oauth-token-error (instance)
Writer: (setf oauth-token-error) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

error.

Reader: oauth-token-error-description (instance)
Writer: (setf oauth-token-error-description) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

error-description.

Reader: oauth-token-expires (instance)
Writer: (setf oauth-token-expires) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

expires.

Reader: oauth-token-expires-in (instance)
Writer: (setf oauth-token-expires-in) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

expires-in.

Reader: oauth-token-obtained-at (instance)
Writer: (setf oauth-token-obtained-at) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

obtained-at.

Function: oauth-token-p (object)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Reader: oauth-token-scope (instance)
Writer: (setf oauth-token-scope) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

scope.

Reader: oauth-token-token-type (instance)
Writer: (setf oauth-token-token-type) (instance)
Package

erjoalgo-webutil.

Source

oauth.lisp.

Target Slot

token-type.

Reader: resp-page-error (instance)
Writer: (setf resp-page-error) (instance)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Target Slot

error.

Reader: resp-page-etag (instance)
Writer: (setf resp-page-etag) (instance)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Target Slot

etag.

Reader: resp-page-items (instance)
Writer: (setf resp-page-items) (instance)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Target Slot

items.

Reader: resp-page-kind (instance)
Writer: (setf resp-page-kind) (instance)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Target Slot

kind.

Reader: resp-page-next-page-token (instance)
Writer: (setf resp-page-next-page-token) (instance)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Target Slot

next-page-token.

Function: resp-page-p (object)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Reader: resp-page-page-info (instance)
Writer: (setf resp-page-page-info) (instance)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Target Slot

page-info.

Reader: resp-page-prev-page-token (instance)
Writer: (setf resp-page-prev-page-token) (instance)
Package

erjoalgo-webutil.

Source

api-client.lisp.

Target Slot

prev-page-token.


5.2.4 Structures

Structure: api-login
Package

erjoalgo-webutil.

Source

oauth.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: key
Readers

api-login-key.

Writers

(setf api-login-key).

Slot: token
Readers

api-login-token.

Writers

(setf api-login-token).

Slot: client
Readers

api-login-client.

Writers

(setf api-login-client).

Structure: oauth-client
Package

erjoalgo-webutil.

Source

oauth.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: client-id
Readers

oauth-client-client-id.

Writers

(setf oauth-client-client-id).

Slot: client-secret
Readers

oauth-client-client-secret.

Writers

(setf oauth-client-client-secret).

Slot: token-uri
Readers

oauth-client-token-uri.

Writers

(setf oauth-client-token-uri).

Slot: scopes
Readers

oauth-client-scopes.

Writers

(setf oauth-client-scopes).

Slot: auth-uri
Readers

oauth-client-auth-uri.

Writers

(setf oauth-client-auth-uri).

Slot: redirect-uris
Readers

oauth-client-redirect-uris.

Writers

(setf oauth-client-redirect-uris).

Slot: auth-provider-x-509-cert-url
Readers

oauth-client-auth-provider-x-509-cert-url.

Writers

(setf oauth-client-auth-provider-x-509-cert-url).

Slot: project-id
Readers

oauth-client-project-id.

Writers

(setf oauth-client-project-id).

Slot: key
Readers

oauth-client-key.

Writers

(setf oauth-client-key).

Slot: meta
Readers

oauth-client-meta.

Writers

(setf oauth-client-meta).

Structure: oauth-token
Package

erjoalgo-webutil.

Source

oauth.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: access-token
Readers

oauth-token-access-token.

Writers

(setf oauth-token-access-token).

Slot: refresh-token
Readers

oauth-token-refresh-token.

Writers

(setf oauth-token-refresh-token).

Slot: expires-in
Readers

oauth-token-expires-in.

Writers

(setf oauth-token-expires-in).

Slot: expires
Readers

oauth-token-expires.

Writers

(setf oauth-token-expires).

Slot: token-type
Readers

oauth-token-token-type.

Writers

(setf oauth-token-token-type).

Slot: error
Package

common-lisp.

Readers

oauth-token-error.

Writers

(setf oauth-token-error).

Slot: error-description
Readers

oauth-token-error-description.

Writers

(setf oauth-token-error-description).

Slot: scope
Readers

oauth-token-scope.

Writers

(setf oauth-token-scope).

Slot: obtained-at
Readers

oauth-token-obtained-at.

Writers

(setf oauth-token-obtained-at).

Structure: resp-page
Package

erjoalgo-webutil.

Source

api-client.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: items
Readers

resp-page-items.

Writers

(setf resp-page-items).

Slot: page-info
Readers

resp-page-page-info.

Writers

(setf resp-page-page-info).

Slot: next-page-token
Readers

resp-page-next-page-token.

Writers

(setf resp-page-next-page-token).

Slot: prev-page-token
Readers

resp-page-prev-page-token.

Writers

(setf resp-page-prev-page-token).

Slot: etag
Readers

resp-page-etag.

Writers

(setf resp-page-etag).

Slot: kind
Readers

resp-page-kind.

Writers

(setf resp-page-kind).

Slot: error
Package

common-lisp.

Readers

resp-page-error.

Writers

(setf resp-page-error).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (   -  
A   C   D   F   G   H   J   L   M   O   P   R   S   W  
Index Entry  Section

(
(setf api-login-client): Public ordinary functions
(setf api-login-key): Private ordinary functions
(setf api-login-token): Private ordinary functions
(setf http-request-additional-headers): Private ordinary functions
(setf http-request-content): Private ordinary functions
(setf http-request-method): Private ordinary functions
(setf http-request-qparams): Public ordinary functions
(setf http-request-resource): Private ordinary functions
(setf http-request-rest): Private ordinary functions
(setf oauth-client-auth-provider-x-509-cert-url): Private ordinary functions
(setf oauth-client-auth-uri): Private ordinary functions
(setf oauth-client-client-id): Private ordinary functions
(setf oauth-client-client-secret): Private ordinary functions
(setf oauth-client-key): Private ordinary functions
(setf oauth-client-meta): Public ordinary functions
(setf oauth-client-project-id): Private ordinary functions
(setf oauth-client-redirect-uris): Private ordinary functions
(setf oauth-client-scopes): Private ordinary functions
(setf oauth-client-token-uri): Private ordinary functions
(setf oauth-token-access-token): Public ordinary functions
(setf oauth-token-error): Private ordinary functions
(setf oauth-token-error-description): Private ordinary functions
(setf oauth-token-expires): Private ordinary functions
(setf oauth-token-expires-in): Private ordinary functions
(setf oauth-token-obtained-at): Private ordinary functions
(setf oauth-token-refresh-token): Public ordinary functions
(setf oauth-token-scope): Private ordinary functions
(setf oauth-token-token-type): Private ordinary functions
(setf resp-page-error): Private ordinary functions
(setf resp-page-etag): Private ordinary functions
(setf resp-page-items): Private ordinary functions
(setf resp-page-kind): Private ordinary functions
(setf resp-page-next-page-token): Private ordinary functions
(setf resp-page-page-info): Private ordinary functions
(setf resp-page-prev-page-token): Private ordinary functions

-
->: Public macros
->>: Public macros
-json-get-nested: Public macros
-params: Public macros

A
alist-get: Public macros
alist-to-http-params: Private ordinary functions
api-login-client: Public ordinary functions
api-login-key: Private ordinary functions
api-login-p: Private ordinary functions
api-login-token: Private ordinary functions
api-req: Public ordinary functions

C
check-nonnil: Public macros
copy-api-login: Private ordinary functions
copy-http-request: Private ordinary functions
copy-oauth-client: Private ordinary functions
copy-oauth-token: Private ordinary functions
copy-resp-page: Private ordinary functions

D
defendpoint: Public macros
defroutes: Public macros
drakma-json-content-type-hack: Public ordinary functions

F
fetch-token: Private ordinary functions
first-file-matching: Public ordinary functions
Function, (setf api-login-client): Public ordinary functions
Function, (setf api-login-key): Private ordinary functions
Function, (setf api-login-token): Private ordinary functions
Function, (setf http-request-additional-headers): Private ordinary functions
Function, (setf http-request-content): Private ordinary functions
Function, (setf http-request-method): Private ordinary functions
Function, (setf http-request-qparams): Public ordinary functions
Function, (setf http-request-resource): Private ordinary functions
Function, (setf http-request-rest): Private ordinary functions
Function, (setf oauth-client-auth-provider-x-509-cert-url): Private ordinary functions
Function, (setf oauth-client-auth-uri): Private ordinary functions
Function, (setf oauth-client-client-id): Private ordinary functions
Function, (setf oauth-client-client-secret): Private ordinary functions
Function, (setf oauth-client-key): Private ordinary functions
Function, (setf oauth-client-meta): Public ordinary functions
Function, (setf oauth-client-project-id): Private ordinary functions
Function, (setf oauth-client-redirect-uris): Private ordinary functions
Function, (setf oauth-client-scopes): Private ordinary functions
Function, (setf oauth-client-token-uri): Private ordinary functions
Function, (setf oauth-token-access-token): Public ordinary functions
Function, (setf oauth-token-error): Private ordinary functions
Function, (setf oauth-token-error-description): Private ordinary functions
Function, (setf oauth-token-expires): Private ordinary functions
Function, (setf oauth-token-expires-in): Private ordinary functions
Function, (setf oauth-token-obtained-at): Private ordinary functions
Function, (setf oauth-token-refresh-token): Public ordinary functions
Function, (setf oauth-token-scope): Private ordinary functions
Function, (setf oauth-token-token-type): Private ordinary functions
Function, (setf resp-page-error): Private ordinary functions
Function, (setf resp-page-etag): Private ordinary functions
Function, (setf resp-page-items): Private ordinary functions
Function, (setf resp-page-kind): Private ordinary functions
Function, (setf resp-page-next-page-token): Private ordinary functions
Function, (setf resp-page-page-info): Private ordinary functions
Function, (setf resp-page-prev-page-token): Private ordinary functions
Function, alist-to-http-params: Private ordinary functions
Function, api-login-client: Public ordinary functions
Function, api-login-key: Private ordinary functions
Function, api-login-p: Private ordinary functions
Function, api-login-token: Private ordinary functions
Function, api-req: Public ordinary functions
Function, copy-api-login: Private ordinary functions
Function, copy-http-request: Private ordinary functions
Function, copy-oauth-client: Private ordinary functions
Function, copy-oauth-token: Private ordinary functions
Function, copy-resp-page: Private ordinary functions
Function, drakma-json-content-type-hack: Public ordinary functions
Function, fetch-token: Private ordinary functions
Function, first-file-matching: Public ordinary functions
Function, google-authenticator: Public ordinary functions
Function, google-current-session-user-email: Private ordinary functions
Function, google-depaginator: Public ordinary functions
Function, google-userinfo-email: Public ordinary functions
Function, http-request-additional-headers: Private ordinary functions
Function, http-request-content: Private ordinary functions
Function, http-request-method: Private ordinary functions
Function, http-request-p: Private ordinary functions
Function, http-request-qparams: Public ordinary functions
Function, http-request-resource: Private ordinary functions
Function, http-request-rest: Private ordinary functions
Function, hunchentoot-create-oauth-redirect-handler: Public ordinary functions
Function, hunchentoot-make-add-fake-session: Public ordinary functions
Function, json-get-nested: Public ordinary functions
Function, json-key-to-lisp: Public ordinary functions
Function, json-path-split: Public ordinary functions
Function, json-req: Public ordinary functions
Function, json-resp: Public ordinary functions
Function, lisp-to-json-key: Public ordinary functions
Function, log-request: Public ordinary functions
Function, make-api-login: Public ordinary functions
Function, make-directories-recursively: Public ordinary functions
Function, make-http-request: Public ordinary functions
Function, make-oauth-client: Private ordinary functions
Function, make-oauth-token: Private ordinary functions
Function, make-resp-page: Private ordinary functions
Function, oauth-client-auth-provider-x-509-cert-url: Private ordinary functions
Function, oauth-client-auth-uri: Private ordinary functions
Function, oauth-client-client-id: Private ordinary functions
Function, oauth-client-client-secret: Private ordinary functions
Function, oauth-client-key: Private ordinary functions
Function, oauth-client-meta: Public ordinary functions
Function, oauth-client-p: Private ordinary functions
Function, oauth-client-project-id: Private ordinary functions
Function, oauth-client-redirect-uris: Private ordinary functions
Function, oauth-client-scopes: Private ordinary functions
Function, oauth-client-token-uri: Private ordinary functions
Function, oauth-exchange-code-for-token: Public ordinary functions
Function, oauth-make-client-from-file: Public ordinary functions
Function, oauth-server-redirect-url: Public ordinary functions
Function, oauth-token-access-token: Public ordinary functions
Function, oauth-token-auth-header: Public ordinary functions
Function, oauth-token-error: Private ordinary functions
Function, oauth-token-error-description: Private ordinary functions
Function, oauth-token-expires: Private ordinary functions
Function, oauth-token-expires-in: Private ordinary functions
Function, oauth-token-obtained-at: Private ordinary functions
Function, oauth-token-p: Private ordinary functions
Function, oauth-token-refresh-token: Public ordinary functions
Function, oauth-token-scope: Private ordinary functions
Function, oauth-token-token-type: Private ordinary functions
Function, params: Public ordinary functions
Function, read-file: Public ordinary functions
Function, resp-page-error: Private ordinary functions
Function, resp-page-etag: Private ordinary functions
Function, resp-page-items: Private ordinary functions
Function, resp-page-kind: Private ordinary functions
Function, resp-page-next-page-token: Private ordinary functions
Function, resp-page-p: Private ordinary functions
Function, resp-page-page-info: Private ordinary functions
Function, resp-page-prev-page-token: Private ordinary functions
Function, sexchange-authenticator: Public ordinary functions
Function, sexchange-depaginator: Public ordinary functions
Function, struct-to-alist: Public ordinary functions

G
google-authenticator: Public ordinary functions
google-current-session-user-email: Private ordinary functions
google-depaginator: Public ordinary functions
google-userinfo-email: Public ordinary functions

H
http-request-additional-headers: Private ordinary functions
http-request-content: Private ordinary functions
http-request-method: Private ordinary functions
http-request-p: Private ordinary functions
http-request-qparams: Public ordinary functions
http-request-resource: Private ordinary functions
http-request-rest: Private ordinary functions
hunchentoot-create-oauth-redirect-handler: Public ordinary functions
hunchentoot-make-add-fake-session: Public ordinary functions

J
json-get-nested: Public ordinary functions
json-key-to-lisp: Public ordinary functions
json-path-split: Public ordinary functions
json-req: Public ordinary functions
json-resp: Public ordinary functions

L
lisp-to-json-key: Public ordinary functions
log-request: Public ordinary functions

M
Macro, ->: Public macros
Macro, ->>: Public macros
Macro, -json-get-nested: Public macros
Macro, -params: Public macros
Macro, alist-get: Public macros
Macro, check-nonnil: Public macros
Macro, defendpoint: Public macros
Macro, defroutes: Public macros
Macro, make-from-json-alist: Public macros
Macro, retry-times: Public macros
Macro, slot-value->: Public macros
Macro, when-let: Public macros
Macro, with-gensyms: Public macros
Macro, with-json-paths: Public macros
Macro, with-mock: Private macros
make-api-login: Public ordinary functions
make-directories-recursively: Public ordinary functions
make-from-json-alist: Public macros
make-http-request: Public ordinary functions
make-oauth-client: Private ordinary functions
make-oauth-token: Private ordinary functions
make-resp-page: Private ordinary functions

O
oauth-client-auth-provider-x-509-cert-url: Private ordinary functions
oauth-client-auth-uri: Private ordinary functions
oauth-client-client-id: Private ordinary functions
oauth-client-client-secret: Private ordinary functions
oauth-client-key: Private ordinary functions
oauth-client-meta: Public ordinary functions
oauth-client-p: Private ordinary functions
oauth-client-project-id: Private ordinary functions
oauth-client-redirect-uris: Private ordinary functions
oauth-client-scopes: Private ordinary functions
oauth-client-token-uri: Private ordinary functions
oauth-exchange-code-for-token: Public ordinary functions
oauth-make-client-from-file: Public ordinary functions
oauth-server-redirect-url: Public ordinary functions
oauth-token-access-token: Public ordinary functions
oauth-token-auth-header: Public ordinary functions
oauth-token-error: Private ordinary functions
oauth-token-error-description: Private ordinary functions
oauth-token-expires: Private ordinary functions
oauth-token-expires-in: Private ordinary functions
oauth-token-obtained-at: Private ordinary functions
oauth-token-p: Private ordinary functions
oauth-token-refresh-token: Public ordinary functions
oauth-token-scope: Private ordinary functions
oauth-token-token-type: Private ordinary functions

P
params: Public ordinary functions

R
read-file: Public ordinary functions
resp-page-error: Private ordinary functions
resp-page-etag: Private ordinary functions
resp-page-items: Private ordinary functions
resp-page-kind: Private ordinary functions
resp-page-next-page-token: Private ordinary functions
resp-page-p: Private ordinary functions
resp-page-page-info: Private ordinary functions
resp-page-prev-page-token: Private ordinary functions
retry-times: Public macros

S
sexchange-authenticator: Public ordinary functions
sexchange-depaginator: Public ordinary functions
slot-value->: Public macros
struct-to-alist: Public ordinary functions

W
when-let: Public macros
with-gensyms: Public macros
with-json-paths: Public macros
with-mock: Private macros


A.3 Variables

Jump to:   *  
A   C   E   G   I   K   M   N   O   P   Q   R   S   T  
Index Entry  Section

*
*api-base-url*: Public special variables
*api-req-retry-count*: Public special variables
*google-login*: Public special variables
*sexchange-login*: Public special variables

A
access-token: Private structures
additional-headers: Public structures
auth-provider-x-509-cert-url: Private structures
auth-uri: Private structures

C
client: Private structures
client-id: Private structures
client-secret: Private structures
content: Public structures

E
error: Private structures
error: Private structures
error-description: Private structures
etag: Private structures
expires: Private structures
expires-in: Private structures

G
google-login-key: Public special variables

I
items: Private structures

K
key: Private structures
key: Private structures
kind: Private structures

M
meta: Private structures
method: Public structures

N
next-page-token: Private structures

O
obtained-at: Private structures

P
page-info: Private structures
prev-page-token: Private structures
project-id: Private structures

Q
qparams: Public structures

R
redirect-uris: Private structures
refresh-token: Private structures
resource: Public structures
rest: Public structures

S
scope: Private structures
scopes: Private structures
sexchange-login-key: Public special variables
Slot, access-token: Private structures
Slot, additional-headers: Public structures
Slot, auth-provider-x-509-cert-url: Private structures
Slot, auth-uri: Private structures
Slot, client: Private structures
Slot, client-id: Private structures
Slot, client-secret: Private structures
Slot, content: Public structures
Slot, error: Private structures
Slot, error: Private structures
Slot, error-description: Private structures
Slot, etag: Private structures
Slot, expires: Private structures
Slot, expires-in: Private structures
Slot, items: Private structures
Slot, key: Private structures
Slot, key: Private structures
Slot, kind: Private structures
Slot, meta: Private structures
Slot, method: Public structures
Slot, next-page-token: Private structures
Slot, obtained-at: Private structures
Slot, page-info: Private structures
Slot, prev-page-token: Private structures
Slot, project-id: Private structures
Slot, qparams: Public structures
Slot, redirect-uris: Private structures
Slot, refresh-token: Private structures
Slot, resource: Public structures
Slot, rest: Public structures
Slot, scope: Private structures
Slot, scopes: Private structures
Slot, token: Private structures
Slot, token-type: Private structures
Slot, token-uri: Private structures
Special Variable, *api-base-url*: Public special variables
Special Variable, *api-req-retry-count*: Public special variables
Special Variable, *google-login*: Public special variables
Special Variable, *sexchange-login*: Public special variables
Special Variable, google-login-key: Public special variables
Special Variable, sexchange-login-key: Public special variables
Special Variable, test-routes: Private special variables

T
test-routes: Private special variables
token: Private structures
token-type: Private structures
token-uri: Private structures


A.4 Data types

Jump to:   A   D   E   F   H   J   O   P   R   S   U  
Index Entry  Section

A
api-client.lisp: The erjoalgo-webutil/api-client․lisp file
api-login: Private structures

D
defendpoint.lisp: The erjoalgo-webutil/defendpoint․lisp file

E
erjoalgo-webutil: The erjoalgo-webutil system
erjoalgo-webutil: The erjoalgo-webutil package
erjoalgo-webutil.asd: The erjoalgo-webutil/erjoalgo-webutil․asd file

F
File, api-client.lisp: The erjoalgo-webutil/api-client․lisp file
File, defendpoint.lisp: The erjoalgo-webutil/defendpoint․lisp file
File, erjoalgo-webutil.asd: The erjoalgo-webutil/erjoalgo-webutil․asd file
File, http.lisp: The erjoalgo-webutil/http․lisp file
File, json.lisp: The erjoalgo-webutil/json․lisp file
File, oauth.lisp: The erjoalgo-webutil/oauth․lisp file
File, packages.lisp: The erjoalgo-webutil/packages․lisp file
File, site-integrations.lisp: The erjoalgo-webutil/site-integrations․lisp file
File, util.lisp: The erjoalgo-webutil/util․lisp file

H
http-request: Public structures
http.lisp: The erjoalgo-webutil/http․lisp file

J
json.lisp: The erjoalgo-webutil/json․lisp file

O
oauth-client: Private structures
oauth-token: Private structures
oauth.lisp: The erjoalgo-webutil/oauth․lisp file

P
Package, erjoalgo-webutil: The erjoalgo-webutil package
packages.lisp: The erjoalgo-webutil/packages․lisp file

R
resp-page: Private structures

S
site-integrations.lisp: The erjoalgo-webutil/site-integrations․lisp file
Structure, api-login: Private structures
Structure, http-request: Public structures
Structure, oauth-client: Private structures
Structure, oauth-token: Private structures
Structure, resp-page: Private structures
System, erjoalgo-webutil: The erjoalgo-webutil system

U
util.lisp: The erjoalgo-webutil/util․lisp file