Search in sources :

Example 96 with Subscription

use of org.wso2.eventing.Subscription in project carbon-apimgt by wso2.

the class SubscriptionsApiServiceImplTestCase method testSubscriptionsSubscriptionIdGet.

@Test
public void testSubscriptionsSubscriptionIdGet() throws APIManagementException, NotFoundException {
    TestUtil.printTestMethodName();
    String subsID1 = UUID.randomUUID().toString();
    SubscriptionsApiServiceImpl subscriptionsApiService = new SubscriptionsApiServiceImpl();
    APIStore apiStore = Mockito.mock(APIStoreImpl.class);
    PowerMockito.mockStatic(RestApiUtil.class);
    PowerMockito.when(RestApiUtil.getConsumer(USER)).thenReturn(apiStore);
    Request request = TestUtil.getRequest();
    PowerMockito.when(RestApiUtil.getLoggedInUsername(request)).thenReturn(USER);
    Subscription subscription = SampleTestObjectCreator.createSubscription(subsID1);
    Mockito.when(apiStore.getSubscriptionByUUID(subsID1)).thenReturn(subscription);
    Response response = subscriptionsApiService.subscriptionsSubscriptionIdGet(subsID1, null, null, request);
    Assert.assertEquals(200, response.getStatus());
}
Also used : WorkflowResponse(org.wso2.carbon.apimgt.core.api.WorkflowResponse) GeneralWorkflowResponse(org.wso2.carbon.apimgt.core.workflow.GeneralWorkflowResponse) Response(javax.ws.rs.core.Response) Request(org.wso2.msf4j.Request) Subscription(org.wso2.carbon.apimgt.core.models.Subscription) APIStore(org.wso2.carbon.apimgt.core.api.APIStore) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Example 97 with Subscription

use of org.wso2.eventing.Subscription in project carbon-apimgt by wso2.

the class APISubscriptionDAOImpl method getAPISubscriptionsByAPI.

/**
 * Retrieve the list of subscriptions of an API
 *
 * @param apiId The UUID of API
 * @return A list of {@link Subscription} objects
 * @throws APIMgtDAOException   If failed to get subscriptions.
 */
@Override
public List<Subscription> getAPISubscriptionsByAPI(String apiId) throws APIMgtDAOException {
    final String getSubscriptionsByAPISql = "SELECT SUBS.UUID AS SUBS_UUID, SUBS.TIER_ID AS SUBS_TIER, " + "SUBS.API_ID AS API_ID, SUBS.APPLICATION_ID AS APP_ID, SUBS.SUB_STATUS AS SUB_STATUS, " + "SUBS.SUB_TYPE AS SUB_TYPE, APP.NAME AS APP_NAME, APP.APPLICATION_POLICY_ID AS APP_POLICY_ID, " + "APP.APPLICATION_STATUS AS APP_STATUS, " + "APP.CREATED_BY AS APP_OWNER, POLICY.NAME AS SUBS_POLICY " + "FROM AM_SUBSCRIPTION SUBS, AM_APPLICATION APP, AM_SUBSCRIPTION_POLICY POLICY " + "WHERE SUBS.API_ID = ? AND SUBS.APPLICATION_ID = APP.UUID AND SUBS.TIER_ID = POLICY.UUID " + "AND SUBS.SUB_STATUS NOT IN (?,?)";
    try (Connection conn = DAOUtil.getConnection();
        PreparedStatement ps = conn.prepareStatement(getSubscriptionsByAPISql)) {
        ps.setString(1, apiId);
        ps.setString(2, SubscriptionStatus.ON_HOLD.name());
        ps.setString(3, SubscriptionStatus.REJECTED.name());
        try (ResultSet rs = ps.executeQuery()) {
            return createSubscriptionsWithAppInformationOnly(rs);
        }
    } catch (SQLException e) {
        throw new APIMgtDAOException(DAOUtil.DAO_ERROR_PREFIX + "getting api subscriptions by api(apiId: " + apiId + ")", e);
    }
}
Also used : APIMgtDAOException(org.wso2.carbon.apimgt.core.exception.APIMgtDAOException) SQLException(java.sql.SQLException) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) PreparedStatement(java.sql.PreparedStatement)

Example 98 with Subscription

use of org.wso2.eventing.Subscription in project carbon-apimgt by wso2.

the class ApiDAOImpl method deleteCompositeApi.

@Override
public void deleteCompositeApi(String apiId) throws APIMgtDAOException {
    APISubscriptionDAO apiSubscriptionDAO = DAOFactory.getAPISubscriptionDAO();
    List<Subscription> subscriptions = apiSubscriptionDAO.getAPISubscriptionsByAPI(apiId);
    for (Subscription subscription : subscriptions) {
        apiSubscriptionDAO.deleteAPISubscription(subscription.getId());
    }
    try (Connection connection = DAOUtil.getConnection();
        PreparedStatement statement = connection.prepareStatement(API_DELETE)) {
        persistAPIDelete(connection, statement, apiId);
    } catch (SQLException | IOException e) {
        throw new APIMgtDAOException(DAOUtil.DAO_ERROR_PREFIX + "deleting Composite API: " + apiId, e);
    }
}
Also used : APIMgtDAOException(org.wso2.carbon.apimgt.core.exception.APIMgtDAOException) APISubscriptionDAO(org.wso2.carbon.apimgt.core.dao.APISubscriptionDAO) SQLException(java.sql.SQLException) Connection(java.sql.Connection) PreparedStatement(java.sql.PreparedStatement) IOException(java.io.IOException) Subscription(org.wso2.carbon.apimgt.core.models.Subscription)

Example 99 with Subscription

use of org.wso2.eventing.Subscription in project carbon-apimgt by wso2.

the class ApiDAOImpl method getCompositeAPIApplicationId.

private String getCompositeAPIApplicationId(Connection connection, String apiId) throws APIMgtDAOException {
    APISubscriptionDAO apiSubscriptionDAO = DAOFactory.getAPISubscriptionDAO();
    List<Subscription> subscriptions = apiSubscriptionDAO.getAPISubscriptionsByAPI(apiId);
    if (!subscriptions.isEmpty()) {
        return subscriptions.get(0).getApplication().getId();
    }
    throw new IllegalStateException("Composite API ID " + apiId + " has no associated Application subscription");
}
Also used : APISubscriptionDAO(org.wso2.carbon.apimgt.core.dao.APISubscriptionDAO) Subscription(org.wso2.carbon.apimgt.core.models.Subscription)

Example 100 with Subscription

use of org.wso2.eventing.Subscription in project carbon-apimgt by wso2.

the class APISubscriptionDAOImpl method getPendingAPISubscriptionsByApplication.

/**
 * Retrieve the list of subscriptions of an Application which are in pending state
 *
 * @param applicationId The UUID of Application
 * @return A list of {@link Subscription} objects which has pending status
 * @throws APIMgtDAOException If failed to get subscriptions.
 */
@Override
public List<Subscription> getPendingAPISubscriptionsByApplication(String applicationId) throws APIMgtDAOException {
    final String getSubscriptionsByAppSql = "SELECT SUBS.UUID AS SUBS_UUID, SUBS.TIER_ID AS SUBS_TIER, " + "SUBS.API_ID AS API_ID, SUBS.APPLICATION_ID AS APP_ID, SUBS.SUB_STATUS AS SUB_STATUS, " + "SUBS.SUB_TYPE AS SUB_TYPE, API.PROVIDER AS API_PROVIDER, API.NAME AS API_NAME, " + "API.CONTEXT AS API_CONTEXT, API.VERSION AS API_VERSION, POLICY.NAME AS SUBS_POLICY " + "FROM AM_SUBSCRIPTION SUBS, AM_API API, AM_SUBSCRIPTION_POLICY POLICY  " + "WHERE SUBS.APPLICATION_ID = ? AND SUBS.API_ID = API.UUID AND SUBS.TIER_ID = POLICY.UUID " + "AND SUBS.SUB_STATUS=?";
    try (Connection conn = DAOUtil.getConnection();
        PreparedStatement ps = conn.prepareStatement(getSubscriptionsByAppSql)) {
        ps.setString(1, applicationId);
        ps.setString(2, SubscriptionStatus.ON_HOLD.toString());
        try (ResultSet rs = ps.executeQuery()) {
            return createSubscriptionsWithApiInformationOnly(rs);
        }
    } catch (SQLException e) {
        throw new APIMgtDAOException(DAOUtil.DAO_ERROR_PREFIX + "getting pending api subscriptions by application(appId: " + applicationId + ")", e);
    }
}
Also used : APIMgtDAOException(org.wso2.carbon.apimgt.core.exception.APIMgtDAOException) SQLException(java.sql.SQLException) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) PreparedStatement(java.sql.PreparedStatement)

Aggregations

Test (org.testng.annotations.Test)58 Subscription (org.wso2.carbon.apimgt.core.models.Subscription)58 SubscriptionPolicy (org.wso2.carbon.apimgt.core.models.policy.SubscriptionPolicy)37 APIManagementException (org.wso2.carbon.apimgt.core.exception.APIManagementException)35 APISubscriptionDAO (org.wso2.carbon.apimgt.core.dao.APISubscriptionDAO)34 APIMgtDAOException (org.wso2.carbon.apimgt.core.exception.APIMgtDAOException)34 Application (org.wso2.carbon.apimgt.core.models.Application)30 API (org.wso2.carbon.apimgt.core.models.API)28 ArrayList (java.util.ArrayList)27 Test (org.junit.Test)22 APIPublisher (org.wso2.carbon.apimgt.core.api.APIPublisher)22 Response (javax.ws.rs.core.Response)21 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)21 SQLException (java.sql.SQLException)20 PolicyDAO (org.wso2.carbon.apimgt.core.dao.PolicyDAO)18 APIStore (org.wso2.carbon.apimgt.core.api.APIStore)17 ApplicationDAO (org.wso2.carbon.apimgt.core.dao.ApplicationDAO)15 ErrorDTO (org.wso2.carbon.apimgt.rest.api.common.dto.ErrorDTO)15 Connection (java.sql.Connection)14 PreparedStatement (java.sql.PreparedStatement)14