Factual / factual-clojure-driver

Officially supported Clojure driver for Factual's API.
Other
20 stars 6 forks source link

Migrate to use oauth-clj and http-clj #1

Open dirtyvagabond opened 12 years ago

dirtyvagabond commented 12 years ago

https://github.com/r0man/oauth-clj/issues/5#issuecomment-5297701

sundbry commented 8 years ago

Hey @dirtyvagabond, is there any schedule to update this library?

I'm having a problem on clojure 1.7, and the dependencies are pretty far out of date that they cause compatibility problems. I'm excited to integrate Factual into my project, but this is a roadblock :crying_cat_face:

WARNING: update already refers to: #'clojure.core/update in namespace: clj-http.client, being replaced by: #'clj-http.client/update
...
java.lang.IllegalStateException: Attempting to call unbound fn: #'clj-http.client/update
        at clojure.lang.Var$Unbound.throwArity(Var.java:43)
        at clojure.lang.AFn.invoke(AFn.java:48)
        at clj_http.client$wrap_decompression$fn__1593.invoke(client.clj:214)
        at clj_http.client$wrap_input_coercion$fn__1651.invoke(client.clj:344)
        at clj_http.client$wrap_additional_header_parsing$fn__1672.invoke(client.clj:387)
        at clj_http.client$wrap_output_coercion$fn__1642.invoke(client.clj:298)
        at clj_http.client$wrap_exceptions$fn__1554.invoke(client.clj:118)
        at clj_http.client$wrap_accept$fn__1682.invoke(client.clj:415)
        at clj_http.client$wrap_accept_encoding$fn__1688.invoke(client.clj:429)
        at clj_http.client$wrap_content_type$fn__1677.invoke(client.clj:404)
        at clj_http.client$wrap_form_params$fn__1726.invoke(client.clj:516)
        at clj_http.client$wrap_nested_params$fn__1744.invoke(client.clj:540)
        at clj_http.client$wrap_method$fn__1721.invoke(client.clj:499)
        at clj_http.cookies$wrap_cookies$fn__55.invoke(cookies.clj:118)
        at clj_http.links$wrap_links$fn__85.invoke(links.clj:50)
        at clj_http.client$wrap_unknown_host$fn__1753.invoke(client.clj:559)
        at oauth.io$wrap_input_coercion$fn__2493.invoke(io.clj:80)
        at oauth.io$wrap_output_coercion$fn__2496.invoke(io.clj:86)
        at oauth.io$wrap_meta_response$fn__2489.invoke(io.clj:73)
        at oauth.util$wrap_content_type$fn__2436.invoke(util.clj:168)
        at oauth.v1$wrap_oauth_authorization$fn__2518.invoke(v1.clj:88)
        at oauth.v1$wrap_oauth_signature$fn__2529.invoke(v1.clj:109)
        at clj_http.client$wrap_url$fn__1748.invoke(client.clj:550)
        at oauth.v1$wrap_oauth_defaults$fn__2524.invoke(v1.clj:101)
        at factual.api$execute_request.invoke(api.clj:162)
        at factual.api$fn__2618.invoke(api.clj:234)

lein deps :tree

 [factual/factual-clojure-driver "1.5.2" :exclusions [[org.apache.httpcomponents/httpclient] [org.apache.httpcomponents/httpcore]]]
   [factual/sosueme "0.0.15"]
     [clj-yaml "0.4.0"]
       [org.yaml/snakeyaml "1.5"]
     [fs "1.3.2"]
       [org.apache.commons/commons-compress "1.3"]
   [mavericklou/oauth-clj "0.1.4.1"]
     [clj-http "0.7.0"]
       [crouton "0.1.1"]
         [org.jsoup/jsoup "1.7.1"]
       [org.apache.httpcomponents/httpmime "4.2.2"]
     [inflections "0.8.0"]
dirtyvagabond commented 8 years ago

Thanks @sundbry! Any chance you'd like to take a shot at this and serve up a pull request?

sundbry commented 8 years ago

Hey, I was eager to get Factual integrated so I just spent a few hours reimplementing (fetch) for my application following the API docs online. It did not take a lot of code, the hardest part was getting OAuth to work since the libraries out there do not support 0-legged auth very much.

My project is using http-kit (better async API) instead of clj-http and the code is tied into my application framework, so it doesn't perfectly fit into this driver. I also wanted to avoid using the global initialization/parameters so probably just gonna keep using my new code. I could port it all over though if it might score a deal on a paid license :page_facing_up: :smiling_imp:

Thanks for providing this driver though in any case.

dirtyvagabond commented 8 years ago

@sundbry if you're willing to field a usable and better version of the driver, we'd be willing to at least talk turkey! cc @BradleyFactual