mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Fixed application getting issues and improved the application getting functionality
Improved application functionalities. Modified service layer, DAO layer and API layer
This commit is contained in:
parent
ef0e7ee738
commit
6e3cc085ff
@ -60,7 +60,7 @@ public class ApplicationRelease {
|
||||
|
||||
private Timestamp publishedAt;
|
||||
|
||||
private String modifiedBy;
|
||||
private String modifiedBy;
|
||||
|
||||
private Timestamp modifiedAt;
|
||||
|
||||
@ -132,13 +132,17 @@ public class ApplicationRelease {
|
||||
this.appHashValue = appHashValue;
|
||||
}
|
||||
|
||||
public void setIsSharedWithAllTenants(int isSharedWithAllTenants) { this.isSharedWithAllTenants = isSharedWithAllTenants; }
|
||||
public void setIsSharedWithAllTenants(int isSharedWithAllTenants) {
|
||||
this.isSharedWithAllTenants = isSharedWithAllTenants;
|
||||
}
|
||||
|
||||
public void setMetaData(String metaData) {
|
||||
this.metaData = metaData;
|
||||
}
|
||||
|
||||
public int getId() { return id; }
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getVersion() {
|
||||
return version;
|
||||
|
||||
@ -23,27 +23,18 @@ package org.wso2.carbon.device.application.mgt.common;
|
||||
*/
|
||||
public class Filter {
|
||||
|
||||
/**
|
||||
* Order which the search results should be shown. Ascending or Descending.
|
||||
*/
|
||||
public enum SortingOrder {
|
||||
ASC, DESC
|
||||
}
|
||||
private String appName;
|
||||
|
||||
private String appType;
|
||||
|
||||
private boolean isFullMatch;
|
||||
|
||||
private int limit;
|
||||
|
||||
private int offset;
|
||||
|
||||
private String searchQuery;
|
||||
|
||||
private boolean isFullMatch;
|
||||
|
||||
private SortingOrder sortingOrder;
|
||||
|
||||
private String sortBy;
|
||||
|
||||
private String userName;
|
||||
|
||||
public int getLimit() {
|
||||
return limit;
|
||||
}
|
||||
@ -60,20 +51,12 @@ public class Filter {
|
||||
this.offset = offset;
|
||||
}
|
||||
|
||||
public String getSearchQuery() {
|
||||
return searchQuery;
|
||||
public String getAppName() {
|
||||
return appName;
|
||||
}
|
||||
|
||||
public void setSearchQuery(String searchQuery) {
|
||||
this.searchQuery = searchQuery;
|
||||
}
|
||||
|
||||
public SortingOrder getSortingOrder() {
|
||||
return sortingOrder;
|
||||
}
|
||||
|
||||
public void setSortingOrder(SortingOrder sortingOrder) {
|
||||
this.sortingOrder = sortingOrder;
|
||||
public void setAppName(String appName) {
|
||||
this.appName = appName;
|
||||
}
|
||||
|
||||
public String getSortBy() {
|
||||
@ -84,14 +67,6 @@ public class Filter {
|
||||
this.sortBy = sortBy;
|
||||
}
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public boolean isFullMatch() {
|
||||
return isFullMatch;
|
||||
}
|
||||
@ -100,8 +75,11 @@ public class Filter {
|
||||
isFullMatch = fullMatch;
|
||||
}
|
||||
|
||||
public boolean hasCondition() {
|
||||
return searchQuery != null;
|
||||
public String getAppType() {
|
||||
return appType;
|
||||
}
|
||||
|
||||
public void setAppType(String appType) {
|
||||
this.appType = appType;
|
||||
}
|
||||
}
|
||||
|
||||
@ -181,7 +181,11 @@ public class GenericApplicationDAOImpl extends AbstractDAOImpl implements Applic
|
||||
throw new ApplicationManagementDAOException("Filter need to be instantiated");
|
||||
}
|
||||
|
||||
if (filter.getSearchQuery() != null && !filter.getSearchQuery().isEmpty()) {
|
||||
if (filter.getAppType() != null) {
|
||||
sql += " AND AP_APP.TYPE ";
|
||||
sql += "= ?";
|
||||
}
|
||||
if (filter.getAppName() != null) {
|
||||
sql += " AND LOWER (AP_APP.NAME) ";
|
||||
if (filter.isFullMatch()) {
|
||||
sql += "= ?";
|
||||
@ -200,11 +204,14 @@ public class GenericApplicationDAOImpl extends AbstractDAOImpl implements Applic
|
||||
stmt = conn.prepareStatement(sql);
|
||||
stmt.setInt(++index, tenantId);
|
||||
|
||||
if (filter.getSearchQuery() != null && !filter.getSearchQuery().isEmpty()) {
|
||||
if (filter.getAppType() != null) {
|
||||
stmt.setString(++index, filter.getAppType());
|
||||
}
|
||||
if (filter.getAppName() != null) {
|
||||
if (filter.isFullMatch()) {
|
||||
stmt.setString(++index, filter.getSearchQuery().toLowerCase());
|
||||
stmt.setString(++index, filter.getAppName().toLowerCase());
|
||||
} else {
|
||||
stmt.setString(++index, "%" + filter.getSearchQuery().toLowerCase() + "%");
|
||||
stmt.setString(++index, "%" + filter.getAppName().toLowerCase() + "%");
|
||||
}
|
||||
}
|
||||
|
||||
@ -212,9 +219,9 @@ public class GenericApplicationDAOImpl extends AbstractDAOImpl implements Applic
|
||||
stmt.setInt(++index, filter.getOffset());
|
||||
rs = stmt.executeQuery();
|
||||
applicationList.setApplications(Util.loadApplications(rs));
|
||||
pagination.setSize(filter.getOffset());
|
||||
pagination.setCount(this.getApplicationCount(filter));
|
||||
applicationList.setPagination(pagination);
|
||||
applicationList.getPagination().setSize(filter.getOffset());
|
||||
applicationList.getPagination().setCount(applicationList.getApplications().size());
|
||||
|
||||
} catch (SQLException e) {
|
||||
throw new ApplicationManagementDAOException("Error occurred while getting application list for the tenant"
|
||||
@ -287,15 +294,15 @@ public class GenericApplicationDAOImpl extends AbstractDAOImpl implements Applic
|
||||
conn = this.getDBConnection();
|
||||
sql += "SELECT count(APP.ID) AS APP_COUNT FROM AP_APP AS APP WHERE TENANT_ID = ?";
|
||||
|
||||
if (filter.getSearchQuery() != null && !filter.getSearchQuery().isEmpty()) {
|
||||
if (filter.getAppName() != null) {
|
||||
sql += " AND LOWER (APP.NAME) LIKE ? ";
|
||||
}
|
||||
sql += ";";
|
||||
|
||||
stmt = conn.prepareStatement(sql);
|
||||
int index = 0;
|
||||
if (filter.getSearchQuery() != null && !filter.getSearchQuery().isEmpty()) {
|
||||
stmt.setString(++index, "%" + filter.getSearchQuery().toLowerCase() + "%");
|
||||
if (filter.getAppName() != null) {
|
||||
stmt.setString(++index, "%" + filter.getAppName().toLowerCase() + "%");
|
||||
}
|
||||
rs = stmt.executeQuery();
|
||||
if (rs.next()) {
|
||||
|
||||
@ -27,9 +27,11 @@ import org.wso2.carbon.device.application.mgt.common.AppLifecycleState;
|
||||
import org.wso2.carbon.device.application.mgt.common.Application;
|
||||
import org.wso2.carbon.device.application.mgt.common.ApplicationList;
|
||||
import org.wso2.carbon.device.application.mgt.common.ApplicationRelease;
|
||||
import org.wso2.carbon.device.application.mgt.common.ApplicationType;
|
||||
import org.wso2.carbon.device.application.mgt.common.Filter;
|
||||
import org.wso2.carbon.device.application.mgt.common.LifecycleState;
|
||||
import org.wso2.carbon.device.application.mgt.common.LifecycleStateTransition;
|
||||
import org.wso2.carbon.device.application.mgt.common.SortingOrder;
|
||||
import org.wso2.carbon.device.application.mgt.common.UnrestrictedRole;
|
||||
import org.wso2.carbon.device.application.mgt.common.User;
|
||||
import org.wso2.carbon.device.application.mgt.common.exception.ApplicationManagementException;
|
||||
@ -53,10 +55,11 @@ import org.wso2.carbon.user.api.UserRealm;
|
||||
import org.wso2.carbon.user.api.UserStoreException;
|
||||
import org.wso2.carbon.utils.multitenancy.MultitenantUtils;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.sql.Timestamp;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* Default Concrete implementation of Application Management related implementations.
|
||||
@ -64,6 +67,8 @@ import java.util.List;
|
||||
public class ApplicationManagerImpl implements ApplicationManager {
|
||||
|
||||
private static final Log log = LogFactory.getLog(ApplicationManagerImpl.class);
|
||||
private static final int DEFAULT_LIMIT = 20;
|
||||
private static final int DEFAULT_OFFSET = 10;
|
||||
private DeviceTypeDAO deviceTypeDAO;
|
||||
private VisibilityDAO visibilityDAO;
|
||||
private ApplicationDAO applicationDAO;
|
||||
@ -90,7 +95,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
||||
}
|
||||
|
||||
validateAppCreatingRequest(application);
|
||||
validateReleaseCreateRequest(application.getApplicationReleases());
|
||||
validateReleaseCreatingRequest(application.getApplicationReleases());
|
||||
DeviceType deviceType;
|
||||
ApplicationRelease applicationRelease;
|
||||
try {
|
||||
@ -149,8 +154,12 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
||||
ApplicationList applicationList;
|
||||
List<ApplicationRelease> applicationReleases;
|
||||
|
||||
filter = validateFilter(filter);
|
||||
if (filter == null) {
|
||||
throw new ApplicationManagementException("Filter validation failed, Please verify the request payload");
|
||||
}
|
||||
|
||||
try {
|
||||
filter.setUserName(userName);
|
||||
ConnectionManagerUtil.openDBConnection();
|
||||
applicationList = applicationDAO.getApplications(filter, tenantId);
|
||||
if (!isAdminUser(userName, tenantId, CarbonConstants.UI_ADMIN_PERMISSION_COLLECTION)) {
|
||||
@ -427,17 +436,26 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
||||
*/
|
||||
private void validateAppCreatingRequest(Application application) throws ValidationException {
|
||||
|
||||
if (application.getName() == null) {
|
||||
throw new ValidationException("Application name cannot be empty");
|
||||
}
|
||||
if (application.getUser() == null || application.getUser().getUserName() == null
|
||||
|| application.getUser().getTenantId() == 0) {
|
||||
throw new ValidationException("Username and tenant Id cannot be empty");
|
||||
}
|
||||
if (application.getAppCategory() == null) {
|
||||
throw new ValidationException("Username and tenant Id cannot be empty");
|
||||
}
|
||||
Boolean isValidApplicationType;
|
||||
try {
|
||||
if (application.getName() == null) {
|
||||
throw new ValidationException("Application name cannot be empty");
|
||||
}
|
||||
if (application.getUser() == null || application.getUser().getUserName() == null
|
||||
|| application.getUser().getTenantId() == -1) {
|
||||
throw new ValidationException("Username and tenant Id cannot be empty");
|
||||
}
|
||||
if (application.getAppCategory() == null) {
|
||||
throw new ValidationException("Username and tenant Id cannot be empty");
|
||||
}
|
||||
|
||||
isValidApplicationType = isValidAppType(application);
|
||||
|
||||
if (!isValidApplicationType) {
|
||||
throw new ValidationException("App Type contains in the application creating payload doesn't match with " +
|
||||
"supported app types");
|
||||
}
|
||||
|
||||
validateApplicationExistence(application);
|
||||
} catch (ApplicationManagementException e) {
|
||||
throw new ValidationException("Error occured while validating whether there is already an application "
|
||||
@ -445,6 +463,15 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
||||
}
|
||||
}
|
||||
|
||||
private Boolean isValidAppType(Application application) {
|
||||
for (ApplicationType applicationType : ApplicationType.values()) {
|
||||
if (applicationType.toString().equals(application.getType())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* To validate the application existence
|
||||
*
|
||||
@ -454,7 +481,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
||||
private void validateApplicationExistence(Application application) throws ApplicationManagementException {
|
||||
Filter filter = new Filter();
|
||||
filter.setFullMatch(true);
|
||||
filter.setSearchQuery(application.getName().trim());
|
||||
filter.setAppName(application.getName().trim());
|
||||
filter.setOffset(0);
|
||||
filter.setLimit(1);
|
||||
|
||||
@ -544,7 +571,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
||||
* @param applicationReleases ApplicationRelease that need to be created.
|
||||
* @throws ApplicationManagementException Application Management Exception.
|
||||
*/
|
||||
private void validateReleaseCreateRequest(List<ApplicationRelease> applicationReleases)
|
||||
private void validateReleaseCreatingRequest(List<ApplicationRelease> applicationReleases)
|
||||
throws ApplicationManagementException {
|
||||
|
||||
if (applicationReleases.isEmpty() || applicationReleases.size() > 1) {
|
||||
@ -747,4 +774,34 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
||||
//todo update application
|
||||
return application;
|
||||
}
|
||||
|
||||
private Filter validateFilter(Filter filter) {
|
||||
if (filter != null) {
|
||||
if (filter.getLimit() == 0) {
|
||||
filter.setLimit(DEFAULT_LIMIT);
|
||||
}
|
||||
if (filter.getOffset() == 0) {
|
||||
filter.setOffset(DEFAULT_OFFSET);
|
||||
}
|
||||
if (!SortingOrder.ASC.toString().equals(filter.getSortBy()) &&
|
||||
!SortingOrder.DESC.toString().equals(filter.getSortBy())) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
if (filter.getAppType() != null) {
|
||||
Boolean isValidRequest = false;
|
||||
for (ApplicationType applicationType: ApplicationType.values()){
|
||||
if(applicationType.toString().equals(filter.getAppType())){
|
||||
isValidRequest = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isValidRequest){
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
return filter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -32,11 +32,8 @@ import org.apache.cxf.jaxrs.ext.multipart.Attachment;
|
||||
import org.apache.cxf.jaxrs.ext.multipart.Multipart;
|
||||
import org.wso2.carbon.apimgt.annotations.api.Scope;
|
||||
import org.wso2.carbon.apimgt.annotations.api.Scopes;
|
||||
import org.wso2.carbon.device.application.mgt.common.LifecycleState;
|
||||
import org.wso2.carbon.device.application.mgt.common.*;
|
||||
import org.wso2.carbon.device.application.mgt.publisher.api.beans.ErrorResponse;
|
||||
import org.wso2.carbon.device.application.mgt.common.Application;
|
||||
import org.wso2.carbon.device.application.mgt.common.ApplicationList;
|
||||
import org.wso2.carbon.device.application.mgt.common.ApplicationRelease;
|
||||
|
||||
import java.util.List;
|
||||
import javax.validation.Valid;
|
||||
@ -146,17 +143,10 @@ public interface ApplicationManagementAPI {
|
||||
})
|
||||
Response getApplications(
|
||||
@ApiParam(
|
||||
name = "offset",
|
||||
value = "Provide from which position apps should return", defaultValue = "20")
|
||||
@QueryParam("offset") int offset,
|
||||
@ApiParam(
|
||||
name = "limit",
|
||||
value = "Provide how many apps it should return", defaultValue = "0")
|
||||
@QueryParam("limit") int limit,
|
||||
@ApiParam(
|
||||
name = "searchQuery",
|
||||
value = "Relevant search query to search on", defaultValue = "*")
|
||||
@QueryParam("searchQuery") String searchQuery
|
||||
name = "filter",
|
||||
value = "Filter to get application list",
|
||||
required = true)
|
||||
@Valid Filter filter
|
||||
);
|
||||
|
||||
@GET
|
||||
@ -395,8 +385,12 @@ public interface ApplicationManagementAPI {
|
||||
response = ErrorResponse.class)
|
||||
})
|
||||
Response updateApplicationArtifact(
|
||||
@ApiParam(name = "id", value = "Id of the application", required = true) @PathParam("uuid") int applicationId,
|
||||
@ApiParam(name = "uuid", value = "UUID of the application", required = true) @PathParam("uuid") String applicationUUID,
|
||||
@ApiParam(name = "appType", value = "Type of the application i.e Android, iOS etc", required = true)
|
||||
@PathParam("appType") String appType,
|
||||
@ApiParam(name = "id", value = "Id of the application", required = true)
|
||||
@PathParam("uuid") int applicationId,
|
||||
@ApiParam(name = "uuid", value = "UUID of the application", required = true)
|
||||
@PathParam("uuid") String applicationUUID,
|
||||
@Multipart("binaryFile") Attachment binaryFile);
|
||||
|
||||
@PUT
|
||||
|
||||
@ -56,7 +56,6 @@ import javax.ws.rs.core.Response;
|
||||
@Path("/publisher/applications")
|
||||
public class ApplicationManagementAPIImpl implements ApplicationManagementAPI {
|
||||
|
||||
private static final int DEFAULT_LIMIT = 20;
|
||||
private static Log log = LogFactory.getLog(ApplicationManagementAPIImpl.class);
|
||||
|
||||
|
||||
@ -64,28 +63,22 @@ public class ApplicationManagementAPIImpl implements ApplicationManagementAPI {
|
||||
@Override
|
||||
@Consumes("application/json")
|
||||
public Response getApplications(
|
||||
@QueryParam("offset") int offset,
|
||||
@QueryParam("limit") int limit,
|
||||
@QueryParam("query") String searchQuery) {
|
||||
@Valid Filter filter) {
|
||||
ApplicationManager applicationManager = APIUtil.getApplicationManager();
|
||||
|
||||
try {
|
||||
if (limit == 0) {
|
||||
limit = DEFAULT_LIMIT;
|
||||
}
|
||||
Filter filter = new Filter();
|
||||
filter.setOffset(offset);
|
||||
filter.setLimit(limit);
|
||||
filter.setSearchQuery(searchQuery);
|
||||
|
||||
ApplicationList applications = applicationManager.getApplications(filter);
|
||||
if (applications.getApplications().isEmpty()) {
|
||||
return Response.status(Response.Status.NOT_FOUND).entity
|
||||
("Couldn't find any application for requested query.").build();
|
||||
}
|
||||
return Response.status(Response.Status.OK).entity(applications).build();
|
||||
} catch (NotFoundException e) {
|
||||
return Response.status(Response.Status.NOT_FOUND).build();
|
||||
} catch (ApplicationManagementException e) {
|
||||
String msg = "Error occurred while getting the application list for publisher ";
|
||||
log.error(msg, e);
|
||||
return Response.status(Response.Status.BAD_REQUEST).build();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
}
|
||||
|
||||
@ -100,7 +93,7 @@ public class ApplicationManagementAPIImpl implements ApplicationManagementAPI {
|
||||
Application application = applicationManager.getApplication(appType, appName);
|
||||
if (application == null) {
|
||||
return Response.status(Response.Status.NOT_FOUND).entity
|
||||
("Application with UUID " + appType + " not found").build();
|
||||
("Application with application type: " + appType + " not found").build();
|
||||
}
|
||||
|
||||
return Response.status(Response.Status.OK).entity(application).build();
|
||||
@ -126,32 +119,32 @@ public class ApplicationManagementAPIImpl implements ApplicationManagementAPI {
|
||||
InputStream iconFileStream;
|
||||
InputStream bannerFileStream;
|
||||
List<InputStream> attachments = new ArrayList<>();
|
||||
List<ApplicationRelease> applicationReleases = new ArrayList<>();
|
||||
try {
|
||||
if (iconFile == null) {
|
||||
throw new ApplicationManagementException(
|
||||
"Icon file is not uploaded for the application release of " + application.getName() +
|
||||
" of application type " + application.getType());
|
||||
log.error("Icon file is not uploaded for the application release of " + application.getName() +
|
||||
" of application type " + application.getType());
|
||||
return Response.status(Response.Status.BAD_REQUEST).build();
|
||||
}
|
||||
|
||||
if (bannerFile == null) {
|
||||
throw new ApplicationManagementException(
|
||||
"Banner file is not uploaded for the application release of " + application.getName() +
|
||||
" of application type " + application.getType());
|
||||
log.error("Banner file is not uploaded for the application release of " + application.getName() +
|
||||
" of application type " + application.getType());
|
||||
return Response.status(Response.Status.BAD_REQUEST).build();
|
||||
}
|
||||
|
||||
if (attachmentList == null || attachmentList.isEmpty()) {
|
||||
throw new ApplicationManagementException(
|
||||
"Screenshots are not uploaded for the application release of " + application.getName() +
|
||||
" of application type " + application.getType());
|
||||
log.error("Screenshots are not uploaded for the application release of " + application.getName() +
|
||||
" of application type " + application.getType());
|
||||
return Response.status(Response.Status.BAD_REQUEST).build();
|
||||
}
|
||||
|
||||
if (binaryFile == null) {
|
||||
throw new ApplicationManagementException(
|
||||
"Binary file is not uploaded for the application release of " + application.getName() +
|
||||
" of application type " + application.getType());
|
||||
log.error("Binary file is not uploaded for the application release of " + application.getName() +
|
||||
" of application type " + application.getType());
|
||||
return Response.status(Response.Status.BAD_REQUEST).build();
|
||||
}
|
||||
|
||||
|
||||
iconFileStream = iconFile.getDataHandler().getInputStream();
|
||||
bannerFileStream = bannerFile.getDataHandler().getInputStream();
|
||||
|
||||
@ -159,7 +152,7 @@ public class ApplicationManagementAPIImpl implements ApplicationManagementAPI {
|
||||
attachments.add(screenshot.getDataHandler().getInputStream());
|
||||
}
|
||||
|
||||
applicationRelease = applicationStorageManager.uploadReleaseArtifacts(applicationRelease,
|
||||
applicationRelease = applicationStorageManager.uploadReleaseArtifact(applicationRelease, application.getType(),
|
||||
binaryFile.getDataHandler().getInputStream());
|
||||
|
||||
if (applicationRelease.getAppStoredLoc() == null || applicationRelease.getAppHashValue() == null) {
|
||||
@ -169,18 +162,19 @@ public class ApplicationManagementAPIImpl implements ApplicationManagementAPI {
|
||||
bannerFileStream, attachments);
|
||||
|
||||
applicationRelease.setUuid(UUID.randomUUID().toString());
|
||||
applicationReleases.add(applicationRelease);
|
||||
application.setApplicationReleases(applicationReleases);
|
||||
Application createdApplication = applicationManager.createApplication(application);
|
||||
|
||||
if (application != null) {
|
||||
if (createdApplication != null) {
|
||||
return Response.status(Response.Status.CREATED).entity(createdApplication).build();
|
||||
} else {
|
||||
log.error("Given device type is not matched with existing device types");
|
||||
return Response.status(Response.Status.BAD_REQUEST).build();
|
||||
log.error("Application Creation Failed");
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
} catch (ApplicationManagementException e) {
|
||||
String msg = "Error occurred while creating the application";
|
||||
log.error(msg, e);
|
||||
return Response.status(Response.Status.BAD_REQUEST).build();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
} catch (ResourceManagementException e) {
|
||||
log.error("Error occurred while uploading the releases artifacts of the application "
|
||||
+ application.getName(), e);
|
||||
@ -232,16 +226,18 @@ public class ApplicationManagementAPIImpl implements ApplicationManagementAPI {
|
||||
return Response.status(Response.Status.OK)
|
||||
.entity("Successfully uploaded artifacts for the application " + applicationUuid).build();
|
||||
} catch (NotFoundException e) {
|
||||
return Response.status(Response.Status.NOT_FOUND).build();
|
||||
} catch (ApplicationManagementException e) {
|
||||
String msg = "Error occurred while creating the application";
|
||||
String msg = "Couldn't found application release details and storage details";
|
||||
log.error(msg, e);
|
||||
return APIUtil.getResponse(e, Response.Status.BAD_REQUEST);
|
||||
return APIUtil.getResponse(e, Response.Status.NOT_FOUND);
|
||||
} catch (ApplicationManagementException e) {
|
||||
String msg = "Error occurred while updating the application";
|
||||
log.error(msg, e);
|
||||
return APIUtil.getResponse(e, Response.Status.INTERNAL_SERVER_ERROR);
|
||||
} catch (IOException e) {
|
||||
log.error("Exception while trying to read icon, banner files for the application " + applicationUuid);
|
||||
return APIUtil.getResponse(new ApplicationManagementException(
|
||||
"Exception while trying to read icon, " + "banner files for the application " + applicationUuid, e),
|
||||
Response.Status.BAD_REQUEST);
|
||||
Response.Status.INTERNAL_SERVER_ERROR);
|
||||
} catch (ResourceManagementException e) {
|
||||
log.error("Error occurred while uploading the image artifacts of the application with the uuid "
|
||||
+ applicationUuid, e);
|
||||
@ -251,29 +247,28 @@ public class ApplicationManagementAPIImpl implements ApplicationManagementAPI {
|
||||
|
||||
@Override
|
||||
@PUT
|
||||
@Path("/app-artifacts/{appId}/{uuid}")
|
||||
@Path("/app-artifacts/{appType}/{appId}/{uuid}")
|
||||
public Response updateApplicationArtifact(
|
||||
@PathParam("appType") String appType,
|
||||
@PathParam("appId") int applicationId,
|
||||
@PathParam("uuid") String applicationUuuid,
|
||||
@Multipart("binaryFile") Attachment binaryFile) {
|
||||
ApplicationStorageManager applicationStorageManager = APIUtil.getApplicationStorageManager();
|
||||
ApplicationManager applicationManager = APIUtil.getApplicationManager();
|
||||
|
||||
|
||||
ApplicationRelease applicationRelease;
|
||||
|
||||
try {
|
||||
|
||||
if (binaryFile != null) {
|
||||
applicationRelease = applicationManager.validateApplicationRelease(applicationUuuid);
|
||||
applicationRelease = applicationStorageManager.updateReleaseArtifacts(applicationRelease,
|
||||
binaryFile.getDataHandler().getInputStream());
|
||||
applicationManager.updateRelease(applicationId, applicationRelease);
|
||||
return Response.status(Response.Status.OK)
|
||||
.entity("Successfully uploaded artifacts for the application " + applicationUuuid).build();
|
||||
|
||||
if (binaryFile == null) {
|
||||
return Response.status(Response.Status.BAD_REQUEST)
|
||||
.entity("Uploading artifacts for the application is failed " + applicationUuuid).build();
|
||||
}
|
||||
return Response.status(Response.Status.BAD_REQUEST)
|
||||
.entity("Uploading artifacts for the application is failed " + applicationUuuid).build();
|
||||
applicationRelease = applicationManager.validateApplicationRelease(applicationUuuid);
|
||||
applicationRelease = applicationStorageManager.updateReleaseArtifacts(applicationRelease, appType,
|
||||
binaryFile.getDataHandler().getInputStream());
|
||||
applicationManager.updateRelease(applicationId, applicationRelease);
|
||||
return Response.status(Response.Status.OK)
|
||||
.entity("Successfully uploaded artifacts for the application " + applicationUuuid).build();
|
||||
} catch (IOException e) {
|
||||
log.error("Exception while trying to read icon, banner files for the application " + applicationUuuid);
|
||||
return APIUtil.getResponse(new ApplicationManagementException(
|
||||
@ -325,21 +320,18 @@ public class ApplicationManagementAPIImpl implements ApplicationManagementAPI {
|
||||
List<InputStream> attachments = new ArrayList<>();
|
||||
|
||||
try {
|
||||
|
||||
applicationRelease = applicationManager.validateApplicationRelease(applicationUUID);
|
||||
Application application = applicationManager.validateApplication(applicationId);
|
||||
|
||||
if (binaryFile != null) {
|
||||
applicationRelease = applicationStorageManager.updateReleaseArtifacts(applicationRelease, binaryFile.getDataHandler().getInputStream());
|
||||
applicationRelease = applicationStorageManager.updateReleaseArtifacts(applicationRelease,
|
||||
application.getType(), binaryFile.getDataHandler().getInputStream());
|
||||
}
|
||||
|
||||
if (iconFile != null) {
|
||||
iconFileStream = iconFile.getDataHandler().getInputStream();
|
||||
}
|
||||
|
||||
if (bannerFile != null) {
|
||||
bannerFileStream = bannerFile.getDataHandler().getInputStream();
|
||||
}
|
||||
|
||||
if (!attachmentList.isEmpty()) {
|
||||
for (Attachment screenshot : attachmentList) {
|
||||
attachments.add(screenshot.getDataHandler().getInputStream());
|
||||
@ -423,7 +415,7 @@ public class ApplicationManagementAPIImpl implements ApplicationManagementAPI {
|
||||
} catch (ApplicationManagementException e) {
|
||||
String msg = "Error occurred while getting lifecycle state.";
|
||||
log.error(msg, e);
|
||||
return Response.status(Response.Status.BAD_REQUEST).build();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
return Response.status(Response.Status.OK).entity(lifecycleState).build();
|
||||
}
|
||||
@ -440,7 +432,7 @@ public class ApplicationManagementAPIImpl implements ApplicationManagementAPI {
|
||||
} catch (ApplicationManagementException e) {
|
||||
String msg = "Error occurred while adding lifecycle state.";
|
||||
log.error(msg, e);
|
||||
return Response.status(Response.Status.BAD_REQUEST).build();
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
|
||||
}
|
||||
return Response.status(Response.Status.CREATED).entity("Lifecycle state added successfully.").build();
|
||||
}
|
||||
|
||||
@ -75,7 +75,7 @@ public class ApplicationManagementAPIImpl implements ApplicationManagementAPI {
|
||||
Filter filter = new Filter();
|
||||
filter.setOffset(offset);
|
||||
filter.setLimit(limit);
|
||||
filter.setSearchQuery(searchQuery);
|
||||
filter.setAppName(searchQuery);
|
||||
|
||||
ApplicationList applications = applicationManager.getApplications(filter);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user