use of org.wso2.carbon.apimgt.api.APIMgtDAOException in project carbon-apimgt by wso2.
the class ApiDAOImpl method addDocumentInfo.
/**
* Add artifact resource meta data to an API
*
* @param apiId UUID of API
* @param documentInfo {@link DocumentInfo}
* @throws APIMgtDAOException if error occurs while accessing data layer
*/
@Override
public void addDocumentInfo(String apiId, DocumentInfo documentInfo) throws APIMgtDAOException {
try (Connection connection = DAOUtil.getConnection()) {
try {
connection.setAutoCommit(false);
ApiResourceDAO.addResourceWithoutValue(connection, apiId, documentInfo.getId(), ResourceCategory.DOC);
DocMetaDataDAO.addDocumentInfo(connection, documentInfo);
connection.commit();
} catch (SQLException e) {
connection.rollback();
String msg = "adding Document Info for API: " + apiId + " , Document Name: " + documentInfo.getName();
throw new APIMgtDAOException(DAOUtil.DAO_ERROR_PREFIX + msg, e);
} finally {
connection.setAutoCommit(DAOUtil.isAutoCommit());
}
} catch (SQLException e) {
String msg = "adding Document Info for API: " + apiId + " , Document Name: " + documentInfo.getName();
throw new APIMgtDAOException(DAOUtil.DAO_ERROR_PREFIX + msg, e);
}
}
use of org.wso2.carbon.apimgt.api.APIMgtDAOException in project carbon-apimgt by wso2.
the class APISubscriptionDAOImpl method createSubscriptionWithApiAndAppInformation.
private Subscription createSubscriptionWithApiAndAppInformation(ResultSet rs) throws APIMgtDAOException {
Subscription subscription = null;
try {
if (rs.next()) {
String subscriptionId = rs.getString("SUBS_UUID");
String subscriptionTier = rs.getString("SUBS_POLICY");
String subscriptionPolicyId = rs.getString("SUBS_POLICY_ID");
API.APIBuilder apiBuilder = new API.APIBuilder(rs.getString("API_PROVIDER"), rs.getString("API_NAME"), rs.getString("API_VERSION"));
apiBuilder.id(rs.getString("API_ID"));
apiBuilder.context(rs.getString("API_CONTEXT"));
API api = apiBuilder.build();
Application app = new Application(rs.getString("APP_NAME"), rs.getString("APP_OWNER"));
app.setId(rs.getString("APP_ID"));
app.setStatus(rs.getString("APP_STATUS"));
subscription = new Subscription(subscriptionId, app, api, new SubscriptionPolicy(subscriptionPolicyId, subscriptionTier));
subscription.setStatus(APIMgtConstants.SubscriptionStatus.valueOf(rs.getString("SUB_STATUS")));
}
} catch (SQLException e) {
throw new APIMgtDAOException(DAOUtil.DAO_ERROR_PREFIX + "creating subscriptions api and app information", e);
}
return subscription;
}
use of org.wso2.carbon.apimgt.api.APIMgtDAOException in project carbon-apimgt by wso2.
the class APISubscriptionDAOImpl method createSubscriptionsFromResultSet.
private List<Subscription> createSubscriptionsFromResultSet(ResultSet rs) throws APIMgtDAOException {
List<Subscription> subscriptionList = new ArrayList<>();
Subscription subscription;
if (rs == null) {
return new ArrayList<>();
}
while ((subscription = createSubscriptionWithApiAndAppInformation(rs)) != null) {
subscriptionList.add(subscription);
}
return subscriptionList;
}
use of org.wso2.carbon.apimgt.api.APIMgtDAOException in project carbon-apimgt by wso2.
the class APISubscriptionDAOImpl method validateSubscription.
/**
* Validates a subscription
*
* @param apiContext Context of the API
* @param apiVersion Version of the API
* @param clientId Client id of the application
* @return Subscription Validation Information
* @throws APIMgtDAOException If failed to get subscription validation results.
*/
public SubscriptionValidationResult validateSubscription(String apiContext, String apiVersion, String clientId) throws APIMgtDAOException {
final String validateSubscriptionSql = "SELECT SUBS.API_ID AS API_ID, SUBS.APPLICATION_ID AS APP_ID, " + "SUBS.SUB_STATUS AS SUB_STATUS, API.PROVIDER AS API_PROVIDER, API.NAME AS API_NAME, " + "APP.NAME AS APP_NAME, APP.CREATED_BY AS APP_OWNER, POLICY.NAME AS SUBS_POLICY " + "FROM AM_SUBSCRIPTION SUBS, AM_API API, AM_APPLICATION APP, AM_SUBSCRIPTION_POLICY POLICY, " + "AM_APP_KEY_MAPPING KEYS " + "WHERE API.CONTEXT = ? AND API.VERSION = ? AND KEYS.CLIENT_ID= ? " + "AND APP.AND SUBS.API_ID = API.UUID AND SUBS.APPLICATION_ID = APP.UUID " + "AND SUBS.TIER_ID = POLICY.UUID AND KEYS.APPLICATION_ID = APP.UUID";
SubscriptionValidationResult validationInfo = new SubscriptionValidationResult(false);
try (Connection conn = DAOUtil.getConnection();
PreparedStatement ps = conn.prepareStatement(validateSubscriptionSql)) {
ps.setString(1, apiContext);
ps.setString(2, apiVersion);
ps.setString(3, clientId);
try (ResultSet rs = ps.executeQuery()) {
if (rs.next()) {
validationInfo.setValid(true);
validationInfo.setApiId(rs.getString("API_ID"));
validationInfo.setApplicationId(rs.getString("APP_ID"));
validationInfo.setSubscriptionStatus(APIMgtConstants.SubscriptionStatus.valueOf(rs.getString("SUB_STATUS")));
validationInfo.setApiProvider(rs.getString("API_PROVIDER"));
validationInfo.setApiName(rs.getString("API_NAME"));
validationInfo.setApplicationName(rs.getString("APP_NAME"));
validationInfo.setApplicationOwner(rs.getString("APP_OWNER"));
validationInfo.setSubscriptionStatus(APIMgtConstants.SubscriptionStatus.valueOf(rs.getString("SUBS_POLICY")));
}
}
} catch (SQLException e) {
throw new APIMgtDAOException(DAOUtil.DAO_ERROR_PREFIX + "validating subscription(apiContext: " + apiContext + ", apiVersion: " + apiVersion + ", clientId: " + clientId + ")", e);
}
return validationInfo;
}
use of org.wso2.carbon.apimgt.api.APIMgtDAOException in project carbon-apimgt by wso2.
the class ApiDAOImpl method isAPINameExists.
/**
* @see ApiDAO#isAPINameExists(String, String)
*/
@Override
public boolean isAPINameExists(String apiName, String providerName) throws APIMgtDAOException {
final String apiExistsQuery = "SELECT 1 FROM AM_API WHERE LOWER(NAME) = ? AND PROVIDER = ? AND " + "API_TYPE_ID = (SELECT TYPE_ID FROM AM_API_TYPES WHERE TYPE_NAME = ?)";
try (Connection connection = DAOUtil.getConnection();
PreparedStatement statement = connection.prepareStatement(apiExistsQuery)) {
statement.setString(1, apiName.toLowerCase(Locale.ENGLISH));
statement.setString(2, providerName);
statement.setString(3, ApiType.STANDARD.toString());
try (ResultSet rs = statement.executeQuery()) {
if (rs.next()) {
return true;
}
}
} catch (SQLException e) {
throw new APIMgtDAOException(DAOUtil.DAO_ERROR_PREFIX + "checking if API: " + apiName + "exists for provider " + providerName, e);
}
return false;
}
Aggregations