Search in sources :

Example 1 with TenantInfoDTO

use of org.wso2.carbon.apimgt.rest.api.admin.v1.dto.TenantInfoDTO in project carbon-apimgt by wso2.

the class TenantInfoApiServiceImpl method getTenantInfoByUsername.

@Override
public Response getTenantInfoByUsername(String username, MessageContext messageContext) {
    TenantInfoDTO tenantInfoDTO = new TenantInfoDTO();
    String decodedUserName;
    try {
        if (StringUtils.isEmpty(username)) {
            RestApiUtil.handleBadRequest("User Name should not be empty", log);
        }
        try {
            decodedUserName = new String(Base64.getDecoder().decode(username));
        } catch (IllegalArgumentException e) {
            log.warn("Could not decode the username. Using original username");
            decodedUserName = username;
        }
        if (!APIUtil.isUserExist(decodedUserName)) {
            RestApiUtil.handleBadRequest("Requested User " + decodedUserName + " does not exist", log);
        }
        String tenantDomain = MultitenantUtils.getTenantDomain(decodedUserName);
        int tenantId = APIUtil.getTenantIdFromTenantDomain(tenantDomain);
        tenantInfoDTO.setTenantDomain(tenantDomain);
        tenantInfoDTO.setTenantId(tenantId);
        tenantInfoDTO.setUsername(decodedUserName);
        return Response.status(Response.Status.OK).entity(tenantInfoDTO).build();
    } catch (APIManagementException e) {
        RestApiUtil.handleInternalServerError("Internal Server Error occurred while retrieving tenant " + "information", e, log);
    }
    return null;
}
Also used : APIManagementException(org.wso2.carbon.apimgt.api.APIManagementException) TenantInfoDTO(org.wso2.carbon.apimgt.rest.api.admin.v1.dto.TenantInfoDTO)

Aggregations

APIManagementException (org.wso2.carbon.apimgt.api.APIManagementException)1 TenantInfoDTO (org.wso2.carbon.apimgt.rest.api.admin.v1.dto.TenantInfoDTO)1