All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.elypia.elypiai.pathofexile.PoERequester Maven / Gradle / Ivy

There is a newer version: 1.0.6
Show newest version
package com.elypia.elypiai.pathofexile;

import com.elypia.elypiai.pathofexile.data.PoEEndpoint;
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.JsonNode;
import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.async.Callback;
import com.mashape.unirest.http.exceptions.UnirestException;
import com.mashape.unirest.request.HttpRequest;
import org.json.JSONArray;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.Collection;
import java.util.function.Consumer;

class PoERequester {

	private PathOfExile poe;

	public PoERequester(PathOfExile poe) {
		this.poe = poe;
	}

	// Stash Tabs

	public void getStashTabs(Consumer success, Consumer failure) {
		String endpoint = PoEEndpoint.PUBLIC_STASH_TABS.getEndpoint();

		Unirest.get(endpoint).asJsonAsync(new Callback( ) {

			@Override
			public void completed(HttpResponse response) {
				JSONObject object = response.getBody().getObject();

				StashTabs stashTabs = new StashTabs(poe, object);

				poe.stashTabs = stashTabs;
				success.accept(poe.stashTabs);
			}

			@Override
			public void failed(UnirestException e) {
				failure.accept(e);
			}

			@Override
			public void cancelled() {

			}
		});
	}

	// Rules

	public void getLeagueRules(Consumer> success, Consumer failure) {
		String endpoint = PoEEndpoint.LEAGUE_RULES.getEndpoint();

		Unirest.get(endpoint).asJsonAsync(new Callback( ) {

			@Override
			public void completed(HttpResponse response) {
				JSONArray array = response.getBody().getArray();

				Collection rules = new ArrayList<>();

				for (int i = 0; i < array.length(); i++) {
					JSONObject ruleObject = array.getJSONObject(i);
					LeagueRule rule = new LeagueRule(poe, ruleObject);

					rules.add(rule);
				}

				success.accept(rules);
			}

			@Override
			public void failed(UnirestException e) {
				failure.accept(e);
			}

			@Override
			public void cancelled() {

			}
		});
	}

	public void getLeagueRule(String id, Consumer success, Consumer failure) {
		String endpoint = PoEEndpoint.LEAGUE_RULES.getEndpoint();

		HttpRequest request = Unirest.get(endpoint).queryString("id", id);
		request.asJsonAsync(new Callback( ) {

			@Override
			public void completed(HttpResponse response) {
				JSONObject object = response.getBody().getObject();
				LeagueRule rule = new LeagueRule(poe, object);

				success.accept(rule);
			}

			@Override
			public void failed(UnirestException e) {
				failure.accept(e);
			}

			@Override
			public void cancelled() {

			}
		});
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy