From 111c0d7c6b928c632d12870de0b531bb6b32e06f Mon Sep 17 00:00:00 2001 Message-Id: <111c0d7c6b928c632d12870de0b531bb6b32e06f.1638101267.git.avityazev@posteo.org> In-Reply-To: References: From: Aleksandr Vityazev Date: Sun, 28 Nov 2021 02:19:08 +0300 Subject: [PATCH 08/11] * oauth2 (oauth2--created-at): New function. --- oauth2.el | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/oauth2.el b/oauth2.el index 4bb886e..7ca6452 100644 --- a/oauth2.el +++ b/oauth2.el @@ -116,6 +116,14 @@ Return the code provided by the service." "Return seconds since the Epoch." (time-convert (current-time) 'integer)) +(defun oauth2--created-at (response) + "Return epoch time from RESPONSE. +If there no created_at key in RESPONSE, add +\(cons 'created_at . epoch-time\) to RESPONSE." + (let ((it (cdr (assoc 'created_at response)))) + (if it it (prog1 (oauth2--epoch-time) + (cl-pushnew (cons 'created_at (oauth2--epoch-time)) response))))) + (cl-defun oauth2-request-access (token-url client-id client-secret code &optional (redirect-uri "urn:ietf:wg:oauth:2.0:oob")) "Request OAuth access at TOKEN-URL. @@ -162,8 +170,7 @@ TOKEN should be obtained with `oauth2-request-access'." :access-token (cdr (assoc 'access_token response)) :refresh-token (cdr (assoc 'refresh_token response)) :expires-in (cdr (assoc 'expires_in response)) - :created-at (let ((it (cdr (assoc 'created_at response)))) - (if it it (oauth2--epoch-time))) + :created-at (oauth2--created-at response) :token-url token-url :access-response response))) (when plstore @@ -206,8 +213,7 @@ Return an `oauth2-token' structure." :access-token (cdr (assoc 'access_token response)) :refresh-token (cdr (assoc 'refresh_token response)) :expires-in (cdr (assoc 'expires_in response)) - :created-at (let ((it (cdr (assoc 'created_at response)))) - (if it it (oauth2--epoch-time))) + :created-at (oauth2--created-at response) :token-url token-url :access-response response))) -- 2.34.0