Remove sync as a provider parameter on creation and add it on execution

master
Elis Axelsson 9 years ago
parent d0442ad98d
commit 95de0b8d06
No known key found for this signature in database
GPG Key ID: D57EFA625C9A925F
  1. 9
      tests/unit/test-webpaste-provider-creation.el
  2. 45
      webpaste.el

@ -15,7 +15,6 @@
(webpaste-provider
:uri "http://invalid-domain-name/"
:post-field "data"
:sync t
:success-lambda (lambda () (cl-function
(lambda (&key data &allow-other-keys)
(setq used-lambda "success"))))
@ -27,7 +26,6 @@
(webpaste-provider
:uri "https://httpbin.org/status/200"
:post-field "data"
:sync t
:success-lambda (lambda () (cl-function
(lambda (&key data &allow-other-keys)
(setq used-lambda "success"))))
@ -39,7 +37,7 @@
(it
"can trigger the error lambda of a provider"
(let ((used-lambda nil))
(funcall broken-provider "my test text")
(funcall broken-provider "my test text" :sync t)
(expect used-lambda :to-equal "error")))
@ -47,7 +45,7 @@
(it
"can trigger the success lambda of a provider"
(let ((used-lambda nil))
(funcall working-provider "my test text")
(funcall working-provider "my test text" :sync t)
(expect used-lambda :to-equal "success")))
@ -62,7 +60,6 @@
(provider (webpaste-provider
:uri "http://invalid-domain-name/"
:post-field "data"
:sync t
:success-lambda (cl-function
(lambda (&key data &allow-other-keys)
(setq used-lambda "success")))
@ -70,7 +67,7 @@
(lambda (&key error-thrown &allow-other-keys)
(funcall working-provider "failover"))))))
(funcall provider "text")
(funcall provider "text" :sync t)
(expect used-lambda :to-equal "success"))))

@ -184,8 +184,7 @@ precalculated, and also available both for pre and post request access.")
(lang-overrides '())
(lang-uri-separator nil)
(error-lambda 'webpaste/providers-error-lambda)
(post-field-lambda 'webpaste/providers-default-post-field-lambda)
(sync nil))
(post-field-lambda 'webpaste/providers-default-post-field-lambda))
"Function to create the lambda function for a provider.
Usage:
@ -237,10 +236,7 @@ Optional params:
TEXT contains the data that should be sent.
POST-FIELD cointains the name of the field to be sent.
POST-DATA contains predefined fields that the provider needs.
:sync Set to t to wait until request is done. Defaults to nil.
This should only be used for debugging purposes."
POST-DATA contains predefined fields that the provider needs."
;; If we get a separator sent to the function, append it to the list of
;; separators for later use
(when lang-uri-separator
@ -250,23 +246,26 @@ Optional params:
(cl-pushnew (cons uri (webpaste/get-lang-alist-with-overrides lang-overrides))
webpaste/provider-lang-alists)
(lambda (text)
"Paste TEXT to provider"
(prog1 nil
;; Do request
(request uri
:type type
:data (funcall (funcall post-field-lambda)
:text text
:provider-uri uri
:post-field post-field
:post-lang-field-name post-lang-field-name
:post-data post-data)
:parser parser
:success (funcall success-lambda)
:sync sync
:error (funcall error-lambda :text text)))))
(cl-function
(lambda (text
&key
(sync nil))
"Paste TEXT to provider. Force SYNC if needed for debugging."
(prog1 nil
;; Do request
(request uri
:type type
:data (funcall (funcall post-field-lambda)
:text text
:provider-uri uri
:post-field post-field
:post-lang-field-name post-lang-field-name
:post-data post-data)
:parser parser
:success (funcall success-lambda)
:sync sync
:error (funcall error-lambda :text text))))))

Loading…
Cancel
Save