From: Alexis Laferrière Date: Sun, 7 Jun 2015 14:02:21 +0000 (-0400) Subject: lib/neo4j: fix and update usage of Curl X-Git-Tag: v0.7.6~52^2~5 X-Git-Url: http://nitlanguage.org lib/neo4j: fix and update usage of Curl Signed-off-by: Alexis Laferrière --- diff --git a/lib/neo4j/curl_json.nit b/lib/neo4j/curl_json.nit index e458eb1..17df2fc 100644 --- a/lib/neo4j/curl_json.nit +++ b/lib/neo4j/curl_json.nit @@ -20,31 +20,11 @@ intrude import curl # An abstract request that defines most of the standard options for Neo4j REST API abstract class JsonCurlRequest - super CurlRequest - super CCurlCallbacks - super CurlCallbacksRegisterIntern - - # REST API service URL - var url: String - - init (url: String, curl: nullable Curl) do - self.url = url - self.curl = curl - - init_headers - end + super CurlHTTPRequest # OAuth token var auth: nullable String is writable - # User agent (is used by github to contact devs in case of problems) - # Eg. "Awesome-Octocat-App" - var user_agent: nullable String is writable - - # HTTP headers to send - var headers: nullable HeaderMap = null is writable - - # init HTTP headers for Neo4j REST API protected fun init_headers do headers = new HeaderMap @@ -54,6 +34,8 @@ abstract class JsonCurlRequest if auth != null then headers["Authorization"] = "token {auth.to_s}" end + + # User agent (is used by github to contact devs in case of problems) if user_agent != null then headers["User-Agent"] = user_agent.to_s end @@ -61,6 +43,7 @@ abstract class JsonCurlRequest redef fun execute do init_headers + if not self.curl.is_ok then return answer_failure(0, "Curl instance is not correctly initialized") end @@ -69,28 +52,25 @@ abstract class JsonCurlRequest var callback_receiver: CurlCallbacks = success_response if self.delegate != null then callback_receiver = self.delegate.as(not null) - var err - - err = self.curl.prim_curl.easy_setopt(new CURLOption.follow_location, 1) + var err = self.curl.native.easy_setopt(new CURLOption.follow_location, 1) if not err.is_ok then return answer_failure(err.to_i, err.to_s) - err = self.curl.prim_curl.easy_setopt(new CURLOption.http_version, 1) + err = self.curl.native.easy_setopt(new CURLOption.http_version, 1) if not err.is_ok then return answer_failure(err.to_i, err.to_s) - - err = self.curl.prim_curl.easy_setopt(new CURLOption.url, url) + err = self.curl.native.easy_setopt(new CURLOption.url, url) if not err.is_ok then return answer_failure(err.to_i, err.to_s) - err = self.curl.prim_curl.register_callback(callback_receiver, new CURLCallbackType.header) + err = self.curl.native.register_callback_header(callback_receiver) if not err.is_ok then return answer_failure(err.to_i, err.to_s) - err = self.curl.prim_curl.register_callback(callback_receiver, new CURLCallbackType.body) + err = self.curl.native.register_callback_body(callback_receiver) if not err.is_ok then return answer_failure(err.to_i, err.to_s) # HTTP Header if self.headers != null then var headers_joined = self.headers.join_pairs(": ") - err = self.curl.prim_curl.easy_setopt( + err = self.curl.native.easy_setopt( new CURLOption.httpheader, headers_joined.to_curlslist) if not err.is_ok then return answer_failure(err.to_i, err.to_s) end @@ -101,8 +81,8 @@ abstract class JsonCurlRequest var err_resp = perform if err_resp != null then return err_resp - var st_code = self.curl.prim_curl.easy_getinfo_long(new CURLInfoLong.response_code) - if not st_code == null then success_response.status_code = st_code.response + var st_code = self.curl.native.easy_getinfo_long(new CURLInfoLong.response_code) + if not st_code == null then success_response.status_code = st_code return success_response end @@ -116,7 +96,7 @@ class JsonGET super JsonCurlRequest redef fun execute_hook do - var err = self.curl.prim_curl.easy_setopt(new CURLOption.get, true) + var err = self.curl.native.easy_setopt(new CURLOption.get, true) if not err.is_ok then return answer_failure(err.to_i, err.to_s) return null end @@ -134,12 +114,12 @@ class JsonPOST end redef fun execute_hook do - var err = self.curl.prim_curl.easy_setopt(new CURLOption.post, true) + var err = self.curl.native.easy_setopt(new CURLOption.post, true) if not err.is_ok then return answer_failure(err.to_i, err.to_s) if self.data != null then var postdatas = self.data.to_json - err = self.curl.prim_curl.easy_setopt(new CURLOption.postfields, postdatas) + err = self.curl.native.easy_setopt(new CURLOption.postfields, postdatas) if not err.is_ok then return answer_failure(err.to_i, err.to_s) end return null @@ -151,7 +131,7 @@ class JsonDELETE super JsonCurlRequest redef fun execute_hook do - var err = self.curl.prim_curl.easy_setopt(new CURLOption.custom_request, "DELETE") + var err = self.curl.native.easy_setopt(new CURLOption.custom_request, "DELETE") if not err.is_ok then return answer_failure(err.to_i, err.to_s) return null end @@ -169,12 +149,12 @@ class JsonPUT end redef fun execute_hook do - var err = self.curl.prim_curl.easy_setopt(new CURLOption.custom_request, "PUT") + var err = self.curl.native.easy_setopt(new CURLOption.custom_request, "PUT") if not err.is_ok then return answer_failure(err.to_i, err.to_s) if self.data != null then var postdatas = self.data.to_json - err = self.curl.prim_curl.easy_setopt(new CURLOption.postfields, postdatas) + err = self.curl.native.easy_setopt(new CURLOption.postfields, postdatas) if not err.is_ok then return answer_failure(err.to_i, err.to_s) end return null diff --git a/lib/neo4j/neo4j.nit b/lib/neo4j/neo4j.nit index 4694f8d..88c151a 100644 --- a/lib/neo4j/neo4j.nit +++ b/lib/neo4j/neo4j.nit @@ -320,14 +320,14 @@ class Neo4jClient # GET JSON data from `url` fun get(url: String): Jsonable do - var request = new JsonGET(url, curl) + var request = new JsonGET(url) var response = request.execute return parse_response(response) end # POST `params` to `url` fun post(url: String, params: Jsonable): Jsonable do - var request = new JsonPOST(url, curl) + var request = new JsonPOST(url) request.data = params var response = request.execute return parse_response(response) @@ -335,7 +335,7 @@ class Neo4jClient # PUT `params` at `url` fun put(url: String, params: Jsonable): Jsonable do - var request = new JsonPUT(url, curl) + var request = new JsonPUT(url) request.data = params var response = request.execute return parse_response(response) @@ -343,7 +343,7 @@ class Neo4jClient # DELETE `url` fun delete(url: String): Jsonable do - var request = new JsonDELETE(url, curl) + var request = new JsonDELETE(url) var response = request.execute return parse_response(response) end @@ -912,7 +912,7 @@ class NeoBatch # Execute the batch and update local nodes fun execute: List[NeoError] do - var request = new JsonPOST(client.batch_url, client.curl) + var request = new JsonPOST(client.batch_url) # request.headers["X-Stream"] = "true" var json_jobs = new JsonArray for job in jobs.values do json_jobs.add job.to_rest