1 package com.atlassian.marketplace.client.impl;
2
3 import java.net.URI;
4
5 import com.atlassian.marketplace.client.MpacException;
6 import com.atlassian.marketplace.client.api.AddonCategories;
7 import com.atlassian.marketplace.client.api.ApplicationKey;
8 import com.atlassian.marketplace.client.api.Applications;
9 import com.atlassian.marketplace.client.model.AddonCategorySummary;
10 import com.atlassian.marketplace.client.model.Application;
11
12 import com.google.common.collect.ImmutableList;
13
14 final class AddonCategoriesImpl implements AddonCategories
15 {
16 private final ApiHelper apiHelper;
17 private final Applications applicationsApi;
18
19 AddonCategoriesImpl(ApiHelper apiHelper, Applications applicationsApi)
20 {
21 this.apiHelper = apiHelper;
22 this.applicationsApi = applicationsApi;
23
24
25 }
26
27 @Override
28 public Iterable<AddonCategorySummary> findForApplication(ApplicationKey appKey) throws MpacException
29 {
30 for (Application a: applicationsApi.getByKey(appKey))
31 {
32 URI uri = apiHelper.requireLinkUri(a.getLinks(), "addonCategories", Application.class);
33 InternalModel.AddonCategories listRep = apiHelper.getEntity(uri, InternalModel.AddonCategories.class);
34 return ImmutableList.copyOf(listRep._embedded.categories);
35 }
36 return ImmutableList.of();
37 }
38 }