(Object path, Object... optionalArgs)
| 4280 | } |
| 4281 | |
| 4282 | public Object sign(Object path, Object... optionalArgs) |
| 4283 | { |
| 4284 | Object api = Helpers.getArg(optionalArgs, 0, "public"); |
| 4285 | Object method = Helpers.getArg(optionalArgs, 1, "GET"); |
| 4286 | Object parameters = Helpers.getArg(optionalArgs, 2, new java.util.HashMap<String, Object>() {{}}); |
| 4287 | Object headers = Helpers.getArg(optionalArgs, 3, null); |
| 4288 | Object body = Helpers.getArg(optionalArgs, 4, null); |
| 4289 | Object query = this.omit(parameters, this.extractParams(path)); |
| 4290 | Object implodedPath = this.implodeParams(path, parameters); |
| 4291 | Object url = Helpers.add(Helpers.add(Helpers.GetValue(Helpers.GetValue(this.urls, "api"), api), "/"), implodedPath); |
| 4292 | Object getRequest = null; |
| 4293 | Object keys = Helpers.objectKeys(query); |
| 4294 | Object queryLength = Helpers.getArrayLength(keys); |
| 4295 | headers = new java.util.HashMap<String, Object>() {{ |
| 4296 | put( "Content-Type", "application/json" ); |
| 4297 | }}; |
| 4298 | if (Helpers.isTrue(Helpers.isEqual(method, "GET"))) |
| 4299 | { |
| 4300 | if (Helpers.isTrue(queryLength)) |
| 4301 | { |
| 4302 | getRequest = Helpers.add("?", this.urlencode(query)); |
| 4303 | url = Helpers.add(url, getRequest); |
| 4304 | } |
| 4305 | } else |
| 4306 | { |
| 4307 | body = this.json(parameters); |
| 4308 | } |
| 4309 | if (Helpers.isTrue(Helpers.isEqual(api, "private"))) |
| 4310 | { |
| 4311 | this.checkRequiredCredentials(); |
| 4312 | Object timestamp = String.valueOf(this.nonce()); |
| 4313 | Object payload = new java.util.ArrayList<Object>(java.util.Arrays.asList(method, Helpers.add("/api/3/", implodedPath))); |
| 4314 | if (Helpers.isTrue(Helpers.isEqual(method, "GET"))) |
| 4315 | { |
| 4316 | if (Helpers.isTrue(!Helpers.isEqual(getRequest, null))) |
| 4317 | { |
| 4318 | ((java.util.List<Object>)payload).add(getRequest); |
| 4319 | } |
| 4320 | } else |
| 4321 | { |
| 4322 | ((java.util.List<Object>)payload).add(body); |
| 4323 | } |
| 4324 | ((java.util.List<Object>)payload).add(timestamp); |
| 4325 | Object payloadString = String.join((String)"", (java.util.List<String>)payload); |
| 4326 | Object signature = this.hmac(this.encode(payloadString), this.encode(this.secret), sha256(), "hex"); |
| 4327 | Object secondPayload = Helpers.add(Helpers.add(Helpers.add(Helpers.add(this.apiKey, ":"), signature), ":"), timestamp); |
| 4328 | Object encoded = this.stringToBase64(secondPayload); |
| 4329 | Helpers.addElementToObject(headers, "Authorization", Helpers.add("HS256 ", encoded)); |
| 4330 | } |
| 4331 | final Object finalUrl = url; |
| 4332 | final Object finalMethod = method; |
| 4333 | final Object finalBody = body; |
| 4334 | final Object finalHeaders = headers; |
| 4335 | return new java.util.HashMap<String, Object>() {{ |
| 4336 | put( "url", finalUrl ); |
| 4337 | put( "method", finalMethod ); |
| 4338 | put( "body", finalBody ); |
| 4339 | put( "headers", finalHeaders ); |
nothing calls this directly
no test coverage detected