Function: eca-providers--handle-login-response
eca-providers--handle-login-response is a natively compiled function
defined in eca-providers.el.
Signature
(eca-providers--handle-login-response SESSION PROVIDER-ID RESULT)
Documentation
Handle login RESULT for PROVIDER-ID from SESSION.
Source Code
;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-providers.el
(defun eca-providers--handle-login-response (session provider-id result)
"Handle login RESULT for PROVIDER-ID from SESSION."
(pcase (plist-get result :action)
("choose-method"
(let* ((methods (append (plist-get result :methods) nil))
(choices (mapcar (lambda (m)
(cons (plist-get m :label)
(plist-get m :key)))
methods))
(selected (completing-read "Login method: " choices nil t)))
(when-let* ((method (cdr (assoc selected choices))))
(eca-providers--do-login session provider-id method))))
("input"
(let ((data (eca-providers--collect-fields
(append (plist-get result :fields) nil))))
(eca-api-request-async session
:method "providers/loginInput"
:params (list :provider provider-id :data data)
:success-callback (lambda (_) (eca-info "Login complete"))
:error-callback (lambda (err) (eca-warn "Login failed: %s" err)))))
("authorize"
(let ((url (plist-get result :url))
(fields (plist-get result :fields))
(msg (plist-get result :message)))
(browse-url url)
(if fields
;; Browser auth + code paste (e.g. Anthropic)
(let ((data (eca-providers--collect-fields (append fields nil))))
(eca-api-request-async session
:method "providers/loginInput"
:params (list :provider provider-id :data data)
:success-callback (lambda (_) (eca-info "Login complete"))
:error-callback (lambda (err) (eca-warn "Login failed: %s" err))))
;; Auto-callback (e.g. OpenAI) — wait for providers/updated
(eca-info "%s" (or msg "Completing authentication in browser...")))))
("device-code"
(let ((url (plist-get result :url))
(code (plist-get result :code))
(msg (plist-get result :message)))
(kill-new code)
(browse-url url)
(eca-info "Code %s copied to clipboard. %s" code (or msg ""))))
("done"
(eca-info "Login complete"))))