package io.github.ibuildthecloud.gdapi.request.handler; import io.github.ibuildthecloud.gdapi.context.ApiContext; import io.github.ibuildthecloud.gdapi.model.Resource; import io.github.ibuildthecloud.gdapi.model.impl.CollectionImpl; import io.github.ibuildthecloud.gdapi.model.impl.VersionImpl; import io.github.ibuildthecloud.gdapi.request.ApiRequest; import io.github.ibuildthecloud.gdapi.url.UrlBuilder; import io.github.ibuildthecloud.gdapi.version.Versions; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.inject.Inject; public class VersionsHandler extends AbstractResponseGenerator { Versions versions; @Override protected void generate(ApiRequest request) throws IOException { if (request.getVersion() != null) return; UrlBuilder urlBuilder = ApiContext.getUrlBuilder(); List<Resource> apiVersions = new ArrayList<Resource>(); for (String version : versions.getVersions()) { apiVersions.add(new VersionImpl(version)); } CollectionImpl collection = new CollectionImpl(); collection.getLinks().put(UrlBuilder.LATEST, urlBuilder.version(versions.getLatest())); collection.getLinks().put(UrlBuilder.SELF, urlBuilder.current()); collection.setData(apiVersions); collection.setResourceType(apiVersions.get(0).getType()); request.setResponseObject(collection); } @Inject public void setVersions(Versions versions) { this.versions = versions; } public Versions getVersions() { return versions; } }