/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2019 Nordix Foundation.
+ * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.policy.pap.main.rest;
-import javax.ws.rs.core.Response;
-
import org.apache.commons.lang3.tuple.Pair;
+import org.onap.policy.common.utils.services.Registry;
+import org.onap.policy.models.base.PfModelException;
import org.onap.policy.models.pdp.concepts.PdpGroups;
+import org.onap.policy.models.provider.PolicyModelsProvider;
+import org.onap.policy.pap.main.PapConstants;
+import org.onap.policy.pap.main.PolicyModelsProviderFactoryWrapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Service;
/**
* Provider for PAP component to query details of all PDP groups.
*
* @author Ram Krishna Verma (ram.krishna.verma@est.tech)
*/
+@Service
public class PdpGroupQueryProvider {
+ private static final Logger LOGGER = LoggerFactory.getLogger(PdpGroupQueryProvider.class);
+
/**
* Queries details of all PDP groups.
*
* @return a pair containing the status and the response
+ * @throws PfModelException in case of errors
*/
- public Pair<Response.Status, PdpGroups> fetchPdpGroupDetails() {
-
- /*
- * TODO Fetch all the details from DB and create the PdpGroups object.
- */
+ public Pair<HttpStatus, PdpGroups> fetchPdpGroupDetails() throws PfModelException {
- return Pair.of(Response.Status.OK, new PdpGroups());
+ final var pdpGroups = new PdpGroups();
+ final PolicyModelsProviderFactoryWrapper modelProviderWrapper =
+ Registry.get(PapConstants.REG_PAP_DAO_FACTORY, PolicyModelsProviderFactoryWrapper.class);
+ try (PolicyModelsProvider databaseProvider = modelProviderWrapper.create()) {
+ pdpGroups.setGroups(databaseProvider.getPdpGroups(null));
+ }
+ LOGGER.debug("PdpGroup Query Response - {}", pdpGroups);
+ return Pair.of(HttpStatus.OK, pdpGroups);
}
}