コード例 #1
0
  /**
   * This method returns the set of APIs for given subscriber
   *
   * @param String user
   * @return List<API>
   * @throws org.wso2.carbon.appmgt.api.AppManagementException if failed to get SubscribedAPIs
   */
  public List<SubscribedAppExtension> getSubscribedApps(String user) throws AppManagementException {
    ArrayList<SubscribedAppExtension> subscribedApps = new ArrayList<SubscribedAppExtension>();
    Connection connection = null;
    PreparedStatement ps = null;
    ResultSet result = null;

    try {
      connection = APIMgtDBUtil.getConnection();

      String sqlQuery =
          "SELECT "
              + "   SUBS.SUBSCRIPTION_ID"
              + "   ,API.APP_PROVIDER AS APP_PROVIDER"
              + "   ,API.APP_NAME AS APP_NAME"
              + "   ,API.APP_VERSION AS APP_VERSION"
              + "   ,API.APP_ID AS APP_ID"
              + "   ,SUBS.SUBSCRIPTION_TIME AS SUBSCRIPTION_TIME"
              + "   ,SUBS.EVALUATION_PERIOD AS EVALUATION_PERIOD"
              + "   ,SUBS.EXPIRED_ON AS EXPIRED_ON"
              + "   ,SUBS.IS_PAID AS IS_PAID"
              + "   FROM "
              + "   APM_SUBSCRIBER SUB, APM_SUBSCRIPTION_EXT SUBS, APM_APP API "
              + "   WHERE "
              + "   SUB.USER_ID = ? "
              + "   AND SUB.TENANT_ID = ? "
              + "   AND SUB.SUBSCRIBER_ID=SUBS.SUBSCRIBER_ID "
              + "   AND API.APP_ID=SUBS.APP_ID";

      ps = connection.prepareStatement(sqlQuery);
      ps.setString(1, user);
      int tenantId = IdentityUtil.getTenantIdOFUser(user);
      ps.setInt(2, tenantId);
      result = ps.executeQuery();

      if (result == null) {
        return subscribedApps;
      }

      while (result.next()) {
        APIIdentifier apiIdentifier =
            new APIIdentifier(
                AppManagerUtil.replaceEmailDomain(result.getString("APP_PROVIDER")),
                result.getString("APP_NAME"),
                result.getString("APP_VERSION"));
        apiIdentifier.setApplicationId(result.getString("APP_ID"));
        SubscribedAppExtension subscribedAPI = new SubscribedAppExtension(apiIdentifier);
        subscribedAPI.setSubscriptionID(result.getInt("SUBSCRIPTION_ID"));
        subscribedAPI.setSubscriptionTime(result.getTimestamp("SUBSCRIPTION_TIME"));
        subscribedAPI.setEvaluationPeriod(result.getInt("EVALUATION_PERIOD"));
        subscribedAPI.setExpireOn(result.getTimestamp("EXPIRED_ON"));
        subscribedAPI.setPaid(result.getBoolean("IS_PAID"));
        subscribedApps.add(subscribedAPI);
      }
    } catch (SQLException e) {
      handleException("Failed to get SubscribedAPI of : " + user, e);
    } catch (IdentityException e) {
      handleException("Failed get tenant id of user " + user, e);
    } finally {
      APIMgtDBUtil.closeAllConnections(ps, connection, result);
    }
    return subscribedApps;
  }