ApiInfoController.java
- package org.genesys.server.api.v2.impl;
- import io.swagger.annotations.Api;
- import org.genesys.server.api.ApiBaseController;
- import org.genesys.server.exception.SearchException;
- import org.genesys.server.model.PublishState;
- import org.genesys.server.model.filters.DatasetFilter;
- import org.genesys.server.model.filters.DescriptorFilter;
- import org.genesys.server.model.filters.DescriptorListFilter;
- import org.genesys.server.model.filters.PartnerFilter;
- import org.genesys.server.service.AccessionService;
- import org.genesys.server.service.DatasetService;
- import org.genesys.server.service.DescriptorListService;
- import org.genesys.server.service.DescriptorService;
- import org.genesys.server.service.InstituteService;
- import org.genesys.server.service.PartnerService;
- import org.genesys.server.service.SubsetService;
- import org.genesys.server.service.filter.AccessionFilter;
- import org.genesys.server.service.filter.SubsetFilter;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.security.access.prepost.PreAuthorize;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RestController;
- /**
- * Info API v2
- */
- @RestController("infoApi2")
- @PreAuthorize("isAuthenticated()")
- @RequestMapping(ApiInfoController.CONTROLLER_URL)
- @Api(tags = { "api-info" })
- public class ApiInfoController {
- public static final String CONTROLLER_URL = ApiBaseController.APIv2_BASE + "/info";
- @Value("${build.version}")
- private String version;
- @Value("${build.artifactId}")
- private String artifactId;
- @Value("${build.revision}")
- private String revision;
- @Value("${base.url}")
- private String baseUrl;
- @Value("${cdn.servers}")
- private String[] cdnServers;
- @Value("${captcha.siteKey}")
- private String captchaSiteKey;
- @Value("${google.analytics.account}")
- private String googleAnalyticsId;
- @Value("${itpgrfa.glis.basepath}")
- private String glisUrl;
- @Value("${frontend.url}")
- private String frontendUrl;
- @Autowired
- private AccessionService accessionService;
- @Autowired
- private DatasetService datasetService;
- @Autowired
- private SubsetService subsetService;
- @Autowired
- private InstituteService instituteService;
- @Autowired
- private DescriptorService descriptorService;
- @Autowired
- private DescriptorListService descriptorListService;
- @Autowired
- private PartnerService partnerService;
- /**
- * Api info.
- *
- * @return the api info
- */
- @RequestMapping(value = "/version", method = RequestMethod.GET)
- public ApiInfo apiInfo() throws SearchException {
- ApiInfo apiInfo = new ApiInfo();
- apiInfo.version = this.version;
- apiInfo.artifactId = this.artifactId;
- apiInfo.revision = this.revision;
- apiInfo.cdnServers = this.cdnServers;
- apiInfo.baseUrl = this.baseUrl;
- apiInfo.publicWebsiteUrl = this.frontendUrl;
- apiInfo.accessionCount = accessionService.countAccessions(new AccessionFilter().historic(false));
- apiInfo.datasetCount = datasetService.countDatasets(new DatasetFilter().state(PublishState.PUBLISHED).current(true));
- apiInfo.subsetCount = subsetService.countSubsets(new SubsetFilter().state(PublishState.PUBLISHED).current(true));
- apiInfo.instituteCount = instituteService.countActive();
- apiInfo.descriptorCount = descriptorService.countDescriptors(new DescriptorFilter().state(PublishState.PUBLISHED));
- apiInfo.descriptorListCount = descriptorListService.countDescriptorLists(new DescriptorListFilter().state(PublishState.PUBLISHED));
- apiInfo.partnerCount = partnerService.countPartners(new PartnerFilter());
- apiInfo.captchaSiteKey = this.captchaSiteKey;
- apiInfo.googleAnalyticsId = this.googleAnalyticsId;
- apiInfo.glisUrl = this.glisUrl;
- return apiInfo;
- }
- /**
- * The Class ApiInfo.
- */
- public static class ApiInfo {
- public String artifactId;
- public String version;
- public String revision;
- public String baseUrl;
- public String publicWebsiteUrl;
- public String[] cdnServers;
- public long instituteCount;
- public long accessionCount;
- public long datasetCount;
- public long subsetCount;
- public long descriptorListCount;
- public long descriptorCount;
- public long partnerCount;
- public String captchaSiteKey;
- public String googleAnalyticsId;
- public String glisUrl;
- }
- }