package com.huhx0015.gw2at.interfaces; import com.android.annotations.Nullable; import com.huhx0015.gw2at.model.responses.BuildResponse; import com.huhx0015.gw2at.model.responses.EmblemResponse; import com.huhx0015.gw2at.model.responses.QuaggansResponse; import com.huhx0015.gw2at.model.responses.TokenInfoResponse; import com.huhx0015.gw2at.model.responses.WorldsResponse; import com.huhx0015.gw2at.model.responses.backstory.BackstoryQuestionResponse; import com.huhx0015.gw2at.model.responses.achievements.AchievementsCategoriesResponse; import com.huhx0015.gw2at.model.responses.achievements.AchievementsDailyResponse; import com.huhx0015.gw2at.model.responses.achievements.AchievementsGroupResponse; import com.huhx0015.gw2at.model.responses.achievements.AchievementsResponse; import com.huhx0015.gw2at.model.responses.account.AccountInventoryResponse; import com.huhx0015.gw2at.model.responses.account.AccountMasteriesResponse; import com.huhx0015.gw2at.model.responses.account.AccountMaterialsResponse; import com.huhx0015.gw2at.model.responses.WalletResponse; import com.huhx0015.gw2at.model.responses.account.AccountFinishersResponse; import com.huhx0015.gw2at.model.responses.account.AccountResponse; import com.huhx0015.gw2at.model.responses.account.AccountAchievementsResponse; import com.huhx0015.gw2at.model.responses.account.AccountBankResponse; import com.huhx0015.gw2at.model.responses.backstory.BackstoryAnswerResponse; import com.huhx0015.gw2at.model.responses.characters.CharacterBackstoryResponse; import com.huhx0015.gw2at.model.responses.characters.CharacterCoreResponse; import com.huhx0015.gw2at.model.responses.characters.CharacterCraftingResponse; import com.huhx0015.gw2at.model.responses.characters.CharacterEquipmentResponse; import com.huhx0015.gw2at.model.responses.characters.CharacterInventoryResponse; import com.huhx0015.gw2at.model.responses.characters.CharacterOverviewResponse; import com.huhx0015.gw2at.model.responses.characters.CharacterSkillsResponse; import com.huhx0015.gw2at.model.responses.characters.CharacterSpecializationsResponse; import com.huhx0015.gw2at.model.responses.characters.CharacterTrainingResponse; import com.huhx0015.gw2at.model.responses.colors.ColorResponse; import com.huhx0015.gw2at.model.responses.commerce.CommerceExchangeResponse; import com.huhx0015.gw2at.model.responses.commerce.CommerceListingsResponse; import com.huhx0015.gw2at.model.responses.commerce.CommercePricesResponse; import com.huhx0015.gw2at.model.responses.commerce.CommerceTransactionsResponse; import com.huhx0015.gw2at.model.responses.items.ItemResponse; import java.util.List; import io.reactivex.Observable; import retrofit2.http.GET; import retrofit2.http.Header; import retrofit2.http.Path; import retrofit2.http.Query; /** * Created by Michael Yoon Huh on 1/30/2017. * * API V2 List: https://wiki.guildwars2.com/wiki/API:2 * * The base URL for all endpoints is https://api.guildwars2.com. * * /v2/account * /v2/account/achievements * /v2/account/bank * /v2/account/dyes * /v2/account/finishers * /v2/account/inventory * /v2/account/masteries * /v2/account/materials * /v2/account/minis * /v2/account/outfits * /v2/account/recipes * /v2/account/skins * /v2/account/titles * /v2/account/wallet * /v2/achievements * /v2/achievements/categories * /v2/achievements/daily * /v2/achievements/daily/tomorrow * /v2/achievements/groups * /v2/backstory/answers * /v2/backstory/questions * /v2/build * /v2/characters * /v2/colors * /v2/commerce/exchange * /v2/commerce/exchange/coins * /v2/commerce/exchange/gems * /v2/commerce/listings * /v2/commerce/prices * /v2/commerce/transactions * /v2/continents * /v2/currencies * /v2/emblem * /v2/files * /v2/finishers * /v2/guild/:id * /v2/guild/:id/log * /v2/guild/:id/members * /v2/guild/:id/ranks * /v2/guild/:id/stash * /v2/guild/:id/teams * /v2/guild/:id/treasury * /v2/guild/:id/upgrades * /v2/guild/permissions * /v2/guild/search * /v2/guild/upgrades * /v2/items * /v2/itemstats * /v2/legends * /v2/maps * /v2/masteries * /v2/materials * /v2/minis * /v2/outfits * /v2/pets * /v2/professions * /v2/pvp * /v2/pvp/amulets * /v2/pvp/games * /v2/pvp/ranks * /v2/pvp/seasons * /v2/pvp/seasons/leaderboards * /v2/pvp/standings * /v2/pvp/stats * /v2/quaggans * /v2/recipes * /v2/recipes/search * /v2/skills * /v2/skins * /v2/specializations * /v2/stories * /v2/stories/seasons * /v2/titles * /v2/tokeninfo * /v2/traits * /v2/worlds * /v2/wvw * /v2/wvw/abilities * /v2/wvw/matches * /v2/wvw/objectives * /v2/wvw/ranks */ public interface RetrofitInterface { // ACCOUNT: @GET("account") Observable<AccountResponse> getAccount(@Header("Authorization") String token); Observable<AccountResponse> getAccountToken(@Query("access_token") String token); // ACCOUNT/ACHIEVEMENTS: @GET("account/achievements") Observable<AccountAchievementsResponse> getAccountAchievements(@Header("Authorization") String token); Observable<AccountAchievementsResponse> getAccountAchievementsToken(@Query("access_token") String token); // ACCOUNT/BANK: @GET("account/achievements") Observable<AccountBankResponse> getAccountBank(@Header("Authorization") String token); Observable<AccountBankResponse> getAccountBankToken(@Query("access_token") String token); // ACCOUNT/DYES: @GET("account/dyes") Observable<List<Integer>> getAccountDyes(@Header("Authorization") String token); Observable<List<Integer>> getAccountDyesToken(@Query("access_token") String token); // ACCOUNT/FINISHERS: @GET("account/finishers") Observable<AccountFinishersResponse> getAccountFinishers(@Header("Authorization") String token); Observable<AccountFinishersResponse> getAccountFinishersToken(@Query("access_token") String token); // ACCOUNT/INVENTORY: @GET("account/inventory") Observable<AccountInventoryResponse> getAccountInventory(@Header("Authorization") String token); Observable<AccountInventoryResponse> getAccountInventoryToken(@Query("access_token") String token); // ACCOUNT/INVENTORY: @GET("account/masteries") Observable<AccountMasteriesResponse> getAccountMasteries(@Header("Authorization") String token); Observable<AccountMasteriesResponse> getAccountMasteriesToken(@Query("access_token") String token); // ACCOUNT/MATERIALS: @GET("account/materials") Observable<AccountMaterialsResponse> getAccountMaterials(@Header("Authorization") String token); Observable<AccountMaterialsResponse> getAccountMaterialsToken(@Query("access_token") String token); // ACCOUNT/MINIS: @GET("account/minis") Observable<List<Integer>> getAccountMinis(@Header("Authorization") String token); Observable<List<Integer>> getAccountMinisToken(@Query("access_token") String token); // ACCOUNT/OUTFITS: @GET("account/outfits") Observable<List<Integer>> getAccountOutfits(@Header("Authorization") String token); Observable<List<Integer>> getAccountOutfitsToken(@Query("access_token") String token); // ACCOUNT/RECIPES: @GET("account/recipes") Observable<List<Integer>> getAccountRecipes(@Header("Authorization") String token); Observable<List<Integer>> getAccountRecipesToken(@Query("access_token") String token); // ACCOUNT/SKINS: @GET("account/skins") Observable<List<Integer>> getAccountSkins(@Header("Authorization") String token); Observable<List<Integer>> getAccountSkinsToken(@Query("access_token") String token); // ACCOUNT/TITLES: @GET("account/titles") Observable<List<Integer>> getAccountTitles(@Header("Authorization") String token); Observable<List<Integer>> getAccountTitlesToken(@Query("access_token") String token); // ACCOUNT/WALLET: @GET("account/wallet") Observable<WalletResponse> getAccountWallet(@Header("Authorization") String token); Observable<WalletResponse> getAccountWalletToken(@Query("access_token") String token); // ACHIEVEMENTS: @GET("achievements") Observable<AchievementsResponse> getAchievements(@Nullable @Query("lang") String lang); // ACHIEVEMENTS/CATEGORIES: @GET("achievements/categories/{id}") Observable<AchievementsCategoriesResponse> getAchievementsCategories(@Path("id") String id, @Nullable @Query("lang") String lang); // ACHIEVEMENTS/DAILY: @GET("achievements/daily") Observable<AchievementsDailyResponse> getAchievementsDaily(); // ACHIEVEMENTS/DAILY/TOMORROW: @GET("achievements/daily/tomorrow") Observable<AchievementsDailyResponse> getAchievementsDailyTomorrow(); // ACHIEVEMENTS/GROUPS: @GET("achievements/groups/{id}") Observable<AchievementsGroupResponse> getAchievementsGroup(@Path("id") String id, @Nullable @Query("lang") String lang); // BACKSTORY/ANSWERS: @GET("backstory/answers") Observable<List<String>> getBackstoryAnswers(); @GET("backstory/answers/{id}") Observable<BackstoryAnswerResponse> getBackstoryAnswerId(@Path("id") String id, @Nullable @Query("lang") String lang, @Nullable @Query("page") Integer page, @Nullable @Query("page_size") String page_size); @GET("backstory/answers/") Observable<List<BackstoryAnswerResponse>> getBackstoryAnswerIds(@Query("ids") String ids, @Nullable @Query("lang") String lang, @Nullable @Query("page") Integer page, @Nullable @Query("page_size") String page_size); // BACKSTORY/QUESTIONS: @GET("backstory/questions") Observable<List<Integer>> getBackstoryQuestions(@Nullable @Query("lang") String lang); @GET("backstory/questions/{id}") Observable<BackstoryQuestionResponse> getBackstoryQuestionId(@Path("id") String id, @Nullable @Query("lang") String lang, @Nullable @Query("page") Integer page, @Nullable @Query("page_size") String page_size); @GET("backstory/questions/") Observable<List<BackstoryQuestionResponse>> getBackstoryQuestionIds(@Query("ids") String ids, @Nullable @Query("lang") String lang, @Nullable @Query("page") Integer page, @Nullable @Query("page_size") String page_size); // BUILD: @GET("build") Observable<BuildResponse> getBuild(); // CHARACTERS: @GET("characters") Observable<List<String>> getCharacters(@Header("Authorization") String token); @GET("characters/") Observable<List<String>> getCharactersToken(@Query("access_token") String token); @GET("characters") Observable<List<String>> getAccountCharacters(@Header("Authorization") String token, @Query("page") String page); @GET("characters/") Observable<List<String>> getAccountCharactersToken(@Query("access_token") String token, @Query("page") String page); @GET("characters/{id}") Observable<CharacterOverviewResponse> getCharacter(@Header("Authorization") String token, @Path("id") String id); @GET("characters/") Observable<List<String>> getCharacterToken(@Query("access_token") String token); @GET("characters/{id}/backstory") Observable<CharacterBackstoryResponse> getCharacterBackstory(@Header("Authorization") String token, @Path("id") String id); @GET("characters/{id}/backstory") Observable<CharacterBackstoryResponse> getCharacterBackstoryToken(@Path("id") String id, @Query("access_token") String token); @GET("characters/{id}/core") Observable<CharacterCoreResponse> getCharacterCore(@Header("Authorization") String token, @Path("id") String id); @GET("characters/{id}/core") Observable<CharacterCoreResponse> getCharacterCoreToken(@Path("id") String id, @Query("access_token") String token); @GET("characters/{id}/crafting") Observable<CharacterCraftingResponse> getCharacterCrafting(@Header("Authorization") String token, @Path("id") String id); @GET("characters/{id}/crafting") Observable<CharacterCraftingResponse> getCharacterCraftingToken(@Path("id") String id, @Query("access_token") String token); @GET("characters/{id}/equipment") Observable<CharacterEquipmentResponse> getCharacterEquipment(@Header("Authorization") String token, @Path("id") String id); @GET("characters/{id}/equipment") Observable<CharacterEquipmentResponse> getCharacterEquipmentToken(@Path("id") String id, @Query("access_token") String token); @GET("characters/{id}/heropoints") Observable<List<String>> getCharacterHeropoints(@Header("Authorization") String token, @Path("id") String id); @GET("characters/{id}/heropoints") Observable<List<String>> getCharacterHeropointsToken(@Path("id") String id, @Query("access_token") String token); @GET("characters/{id}/inventory") Observable<CharacterInventoryResponse> getCharacterInventory(@Header("Authorization") String token, @Path("id") String id); @GET("characters/{id}/inventory") Observable<CharacterInventoryResponse> getCharacterInventoryToken(@Path("id") String id, @Query("access_token") String token); @GET("characters/{id}/recipes") Observable<List<Integer>> getCharacterRecipes(@Header("Authorization") String token, @Path("id") String id); @GET("characters/{id}/recipes") Observable<List<Integer>> getCharacterRecipesToken(@Path("id") String id, @Query("access_token") String token); @GET("characters/{id}/skills") Observable<CharacterSkillsResponse> getCharacterSkills(@Header("Authorization") String token, @Path("id") String id); @GET("characters/{id}/skills") Observable<CharacterSkillsResponse> getCharacterSkillsToken(@Path("id") String id, @Query("access_token") String token); @GET("characters/{id}/specializations") Observable<CharacterSpecializationsResponse> getCharacterSpecializations(@Header("Authorization") String token, @Path("id") String id); @GET("characters/{id}/specializations") Observable<CharacterSpecializationsResponse> getCharacterSpecializationsToken(@Path("id") String id, @Query("access_token") String token); @GET("characters/{id}/training") Observable<CharacterTrainingResponse> getCharacterTraining(@Header("Authorization") String token, @Path("id") String id); @GET("characters/{id}/training") Observable<CharacterTrainingResponse> getCharacterTrainingToken(@Path("id") String id, @Query("access_token") String token); // COLORS: @GET("colors") Observable<ColorResponse> getColors(@Nullable @Query("lang") String lang); // COMMERCE/EXCHANGE: @GET("commerce/exchange") Observable<List<String>> getCommerceExchangeEndpoints(); // COMMERCE/EXCHANGE/COINS: @GET("commerce/exchange/coins") Observable<CommerceExchangeResponse> getCommerceExchangeCoins(@Query("quantity") Integer quantity); // COMMERCE/EXCHANGE/GEMS: @GET("commerce/exchange/gems") Observable<CommerceExchangeResponse> getCommerceExchangeGems(@Query("quantity") Integer quantity); // COMMERCE/LISTINGS @GET("commerce/listings") Observable<List<CommerceListingsResponse>> getCommerceListingsList(@Nullable @Query("ids") String ids); @GET("commerce/listings/{id}") Observable<CommerceListingsResponse> getCommerceListing(@Path("id") String id); // COMMERCE/PRICE @GET("commerce/prices") Observable<List<CommercePricesResponse>> getCommercePricesList(@Nullable @Query("ids") String ids); @GET("commerce/prices/{id}") Observable<CommercePricesResponse> getCommercePrice(@Path("id") String id); // COMMERCE/TRANSACTIONS: @GET("commerce/transactions") Observable<List<String>> getTransactionSecondaryEndpoints(@Header("Authorization") String token); // COMMERCE/TRANSACTIONS: ["current" | "history"] @GET("commerce/transactions/{secondary}") Observable<List<String>> getTransactionTertiaryEndpoints(@Header("Authorization") String token, @Path("secondary") String secondary); // COMMERCE/TRANSACTIONS: ["current/buys" | "current/sells" | "history/buys" | "history/sells"] @GET("commerce/transactions/{secondary}/{tertiary}") Observable<CommerceTransactionsResponse> getTransactions(@Header("Authorization") String token, @Path("secondary") String secondary, @Path("tertiary") String tertiary); // EMBLEM: @GET("emblem") Observable<List<Integer>> getEmblem(); @GET("emblem") Observable<EmblemResponse> getEmblemIds(@Query("ids") String ids); // ITEMS: @GET("items") Observable<List<Integer>> getItems(); @GET("items/{id}") Observable<ItemResponse> getItem(@Path("id") String id); // QUAGGANS: @GET("quaggans") Observable<List<String>> getQuaggans(); @GET("quaggans") Observable<List<QuaggansResponse>> getQuaggans(@Query("ids") String ids); @GET("quaggans/{id}") Observable<QuaggansResponse> getQuagganId(@Path("id") String id); // TOKEN INFO: @GET("tokeninfo") Observable<TokenInfoResponse> getTokenInfo(@Header("Authorization") String token); @GET("tokeninfo") Observable<TokenInfoResponse> getTokenInfoToken(@Query("access_token") String token); // WORLDS: @GET("worlds") Observable<List<Integer>> getWorldList(); @GET("worlds") Observable<List<WorldsResponse>> getWorlds(@Nullable @Query("ids") String ids); @GET("worlds") Observable<List<WorldsResponse>> getLocalizedWorlds(@Nullable @Query("lang") String lang); }