Fix tag feature modifications after review

Gimhan Wijayawardana 3 months ago
parent 8d2fb5fa76
commit 3a6cead8c9

@ -338,10 +338,10 @@ public interface DeviceManagementService {
@QueryParam("requireDeviceInfo") @QueryParam("requireDeviceInfo")
boolean requireDeviceInfo, boolean requireDeviceInfo,
@ApiParam( @ApiParam(
name = "tags", name = "tag",
value = "Describes the tags associated with the enrolment", value = "Describes the tags associated with the enrolment",
required = false) required = false)
@QueryParam("tags") @QueryParam("tag")
List<String> tags, List<String> tags,
@ApiParam( @ApiParam(
name = "offset", name = "offset",

@ -151,7 +151,7 @@ public class DeviceManagementServiceImpl implements DeviceManagementService {
@QueryParam("since") String since, @QueryParam("since") String since,
@HeaderParam("If-Modified-Since") String ifModifiedSince, @HeaderParam("If-Modified-Since") String ifModifiedSince,
@QueryParam("requireDeviceInfo") boolean requireDeviceInfo, @QueryParam("requireDeviceInfo") boolean requireDeviceInfo,
@QueryParam("tags") List<String> tags, @QueryParam("tag") List<String> tags,
@QueryParam("offset") int offset, @QueryParam("offset") int offset,
@QueryParam("limit") int limit) { @QueryParam("limit") int limit) {
try { try {

@ -126,7 +126,7 @@ public class TagManagementServiceImpl implements TagManagementService {
log.debug(msg, e); log.debug(msg, e);
} }
return Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponse.ErrorResponseBuilder(). return Response.status(Response.Status.BAD_REQUEST).entity(new ErrorResponse.ErrorResponseBuilder().
setMessage(msg).build()).build(); setMessage(e.getMessage()).build()).build();
} }
} }

@ -166,13 +166,20 @@ public class TagManagementProviderServiceImpl implements TagManagementProviderSe
try { try {
DeviceManagementDAOFactory.beginTransaction(); DeviceManagementDAOFactory.beginTransaction();
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId(); int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
Tag existingTag = tagDAO.getTagById(tag.getId(), tenantId); Tag tagWithName = tagDAO.getTagByName(tag.getName(), tenantId);
if (existingTag == null) { if (tagWithName != null && tagWithName.getId() != tag.getId()) {
String msg = "Tag with name: " + tag.getName() + " already exists.";
log.error(msg);
throw new BadRequestException(msg);
}
if (tagWithName == null || tagWithName.getId() == tag.getId()) {
tagDAO.updateTag(tag, tenantId);
DeviceManagementDAOFactory.commitTransaction();
} else {
String msg = "Tag with ID: " + tag.getId() + " does not exist."; String msg = "Tag with ID: " + tag.getId() + " does not exist.";
log.error(msg); log.error(msg);
throw new TagNotFoundException(msg); throw new TagNotFoundException(msg);
} }
tagDAO.updateTag(tag, tenantId);
DeviceManagementDAOFactory.commitTransaction(); DeviceManagementDAOFactory.commitTransaction();
} catch (TagManagementDAOException | TransactionManagementException e) { } catch (TagManagementDAOException | TransactionManagementException e) {
DeviceManagementDAOFactory.rollbackTransaction(); DeviceManagementDAOFactory.rollbackTransaction();

@ -41,8 +41,8 @@ public class TestDataHolder {
public final static String TEST_DEVICE_TYPE = "TEST-DEVICE-TYPE"; public final static String TEST_DEVICE_TYPE = "TEST-DEVICE-TYPE";
public final static Integer SUPER_TENANT_ID = -1234; public final static Integer SUPER_TENANT_ID = -1234;
public final static Integer ALTERNATE_TENANT_ID = -1235; public final static Integer ALTERNATE_TENANT_ID = 1234;
public final static Integer ALTERNATE_TENANT_ID_1 = -1236; public final static Integer ALTERNATE_TENANT_ID_1 = 1235;
public final static String SUPER_TENANT_DOMAIN = "carbon.super"; public final static String SUPER_TENANT_DOMAIN = "carbon.super";
public final static String initialDeviceIdentifier = "12345"; public final static String initialDeviceIdentifier = "12345";
public final static String initialDeviceName = "TEST-DEVICE"; public final static String initialDeviceName = "TEST-DEVICE";

Loading…
Cancel
Save