Added prefixes to id definitions and changed varchar(36) to char(40)
This commit is contained in:
parent
cff6901846
commit
f444ad3a5d
|
@ -1,9 +1,9 @@
|
||||||
package org.taskana;
|
package org.taskana;
|
||||||
|
|
||||||
import org.taskana.model.Classification;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.taskana.model.Classification;
|
||||||
|
|
||||||
public interface ClassificationService {
|
public interface ClassificationService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -25,7 +25,7 @@ public interface ClassificationService {
|
||||||
/**
|
/**
|
||||||
* Get a Classification for a given id
|
* Get a Classification for a given id
|
||||||
*
|
*
|
||||||
* @param id
|
* @param id
|
||||||
* @return the requested Classification
|
* @return the requested Classification
|
||||||
*/
|
*/
|
||||||
public Classification selectClassificationById(String id);
|
public Classification selectClassificationById(String id);
|
||||||
|
|
|
@ -7,8 +7,8 @@ import org.taskana.exceptions.TaskNotFoundException;
|
||||||
import org.taskana.exceptions.WorkbasketNotFoundException;
|
import org.taskana.exceptions.WorkbasketNotFoundException;
|
||||||
import org.taskana.model.DueWorkbasketCounter;
|
import org.taskana.model.DueWorkbasketCounter;
|
||||||
import org.taskana.model.Task;
|
import org.taskana.model.Task;
|
||||||
import org.taskana.model.TaskStateCounter;
|
|
||||||
import org.taskana.model.TaskState;
|
import org.taskana.model.TaskState;
|
||||||
|
import org.taskana.model.TaskStateCounter;
|
||||||
|
|
||||||
public interface TaskService {
|
public interface TaskService {
|
||||||
|
|
||||||
|
|
|
@ -1,18 +1,21 @@
|
||||||
package org.taskana.impl;
|
package org.taskana.impl;
|
||||||
|
|
||||||
|
import java.sql.Date;
|
||||||
|
import java.time.Duration;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.taskana.ClassificationService;
|
import org.taskana.ClassificationService;
|
||||||
|
import org.taskana.impl.util.IdGenerator;
|
||||||
import org.taskana.model.Classification;
|
import org.taskana.model.Classification;
|
||||||
import org.taskana.model.mappings.ClassificationMapper;
|
import org.taskana.model.mappings.ClassificationMapper;
|
||||||
|
|
||||||
import java.sql.Date;
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public class ClassificationServiceImpl implements ClassificationService {
|
public class ClassificationServiceImpl implements ClassificationService {
|
||||||
|
|
||||||
|
private static final String ID_PREFIX_CLASSIFICATION = "CLI";
|
||||||
|
|
||||||
private ClassificationMapper classificationMapper;
|
private ClassificationMapper classificationMapper;
|
||||||
|
|
||||||
public ClassificationServiceImpl(ClassificationMapper classificationMapper) {
|
public ClassificationServiceImpl(ClassificationMapper classificationMapper) {
|
||||||
super();
|
super();
|
||||||
this.classificationMapper = classificationMapper;
|
this.classificationMapper = classificationMapper;
|
||||||
|
@ -40,7 +43,7 @@ public class ClassificationServiceImpl implements ClassificationService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void insertClassification(Classification classification) {
|
public void insertClassification(Classification classification) {
|
||||||
classification.setId(UUID.randomUUID().toString());
|
classification.setId(IdGenerator.generateWithPrefix(ID_PREFIX_CLASSIFICATION));
|
||||||
classification.setCreated(Date.valueOf(LocalDate.now()));
|
classification.setCreated(Date.valueOf(LocalDate.now()));
|
||||||
classification.setModified(Date.valueOf(LocalDate.now()));
|
classification.setModified(Date.valueOf(LocalDate.now()));
|
||||||
this.checkServiceLevel(classification);
|
this.checkServiceLevel(classification);
|
||||||
|
@ -61,11 +64,11 @@ public class ClassificationServiceImpl implements ClassificationService {
|
||||||
return classificationMapper.findById(id);
|
return classificationMapper.findById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkServiceLevel(Classification classification){
|
private void checkServiceLevel(Classification classification) {
|
||||||
if(classification.getServiceLevel()!= null){
|
if (classification.getServiceLevel() != null) {
|
||||||
try {
|
try {
|
||||||
java.time.Duration.parse(classification.getServiceLevel());
|
Duration.parse(classification.getServiceLevel());
|
||||||
} catch (Exception e){
|
} catch (Exception e) {
|
||||||
throw new IllegalArgumentException("Invalid timestamp. Please use the format 'PddDThhHmmM'");
|
throw new IllegalArgumentException("Invalid timestamp. Please use the format 'PddDThhHmmM'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,6 @@ import java.sql.Timestamp;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -14,6 +13,7 @@ import org.taskana.TaskanaEngine;
|
||||||
import org.taskana.exceptions.NotAuthorizedException;
|
import org.taskana.exceptions.NotAuthorizedException;
|
||||||
import org.taskana.exceptions.TaskNotFoundException;
|
import org.taskana.exceptions.TaskNotFoundException;
|
||||||
import org.taskana.exceptions.WorkbasketNotFoundException;
|
import org.taskana.exceptions.WorkbasketNotFoundException;
|
||||||
|
import org.taskana.impl.util.IdGenerator;
|
||||||
import org.taskana.model.DueWorkbasketCounter;
|
import org.taskana.model.DueWorkbasketCounter;
|
||||||
import org.taskana.model.ObjectReference;
|
import org.taskana.model.ObjectReference;
|
||||||
import org.taskana.model.Task;
|
import org.taskana.model.Task;
|
||||||
|
@ -26,6 +26,9 @@ import org.taskana.model.mappings.TaskMapper;
|
||||||
public class TaskServiceImpl implements TaskService {
|
public class TaskServiceImpl implements TaskService {
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(TaskServiceImpl.class);
|
private static final Logger logger = LoggerFactory.getLogger(TaskServiceImpl.class);
|
||||||
|
|
||||||
|
private static final String ID_PREFIX_OBJECTR_EFERENCE = "ORI";
|
||||||
|
private static final String ID_PREFIX_TASK = "TKI";
|
||||||
|
|
||||||
private TaskanaEngine taskanaEngine;
|
private TaskanaEngine taskanaEngine;
|
||||||
private TaskMapper taskMapper;
|
private TaskMapper taskMapper;
|
||||||
|
@ -74,25 +77,25 @@ public class TaskServiceImpl implements TaskService {
|
||||||
taskanaEngine.getWorkbasketService().checkAuthorization(task.getWorkbasketId(), WorkbasketAuthorization.APPEND);
|
taskanaEngine.getWorkbasketService().checkAuthorization(task.getWorkbasketId(), WorkbasketAuthorization.APPEND);
|
||||||
|
|
||||||
Timestamp now = new Timestamp(System.currentTimeMillis());
|
Timestamp now = new Timestamp(System.currentTimeMillis());
|
||||||
task.setId(UUID.randomUUID().toString());
|
task.setId(IdGenerator.generateWithPrefix(ID_PREFIX_TASK));
|
||||||
task.setState(TaskState.READY);
|
task.setState(TaskState.READY);
|
||||||
task.setCreated(now);
|
task.setCreated(now);
|
||||||
task.setModified(now);
|
task.setModified(now);
|
||||||
task.setRead(false);
|
task.setRead(false);
|
||||||
task.setTransferred(false);
|
task.setTransferred(false);
|
||||||
|
|
||||||
// insert ObjectReference if needed.
|
// insert ObjectReference if needed.
|
||||||
if (task.getPrimaryObjRef() != null) {
|
if (task.getPrimaryObjRef() != null) {
|
||||||
ObjectReference objectReference = this.objectReferenceMapper.findByObjectReference(task.getPrimaryObjRef());
|
ObjectReference objectReference = this.objectReferenceMapper.findByObjectReference(task.getPrimaryObjRef());
|
||||||
if (objectReference == null) {
|
if (objectReference == null) {
|
||||||
objectReference = task.getPrimaryObjRef();
|
objectReference = task.getPrimaryObjRef();
|
||||||
objectReference.setId(UUID.randomUUID().toString());
|
objectReference.setId(IdGenerator.generateWithPrefix(ID_PREFIX_OBJECTR_EFERENCE));
|
||||||
this.objectReferenceMapper.insert(objectReference);
|
this.objectReferenceMapper.insert(objectReference);
|
||||||
}
|
}
|
||||||
task.setPrimaryObjRef(objectReference);
|
task.setPrimaryObjRef(objectReference);
|
||||||
}
|
}
|
||||||
this.taskMapper.insert(task);
|
this.taskMapper.insert(task);
|
||||||
|
|
||||||
logger.debug("Task '{}' created.", task.getId());
|
logger.debug("Task '{}' created.", task.getId());
|
||||||
return task;
|
return task;
|
||||||
}
|
}
|
||||||
|
@ -157,7 +160,7 @@ public class TaskServiceImpl implements TaskService {
|
||||||
// transfer requires TRANSFER in source and APPEND on destination
|
// transfer requires TRANSFER in source and APPEND on destination
|
||||||
// workbasket
|
// workbasket
|
||||||
taskanaEngine.getWorkbasketService().checkAuthorization(destinationWorkbasketId, WorkbasketAuthorization.APPEND);
|
taskanaEngine.getWorkbasketService().checkAuthorization(destinationWorkbasketId, WorkbasketAuthorization.APPEND);
|
||||||
taskanaEngine.getWorkbasketService().checkAuthorization(task.getWorkbasketId(), WorkbasketAuthorization.TRANSFER);
|
taskanaEngine.getWorkbasketService().checkAuthorization(task.getWorkbasketId(), WorkbasketAuthorization.TRANSFER);
|
||||||
|
|
||||||
// if security is disabled, the implicit existance check on the
|
// if security is disabled, the implicit existance check on the
|
||||||
// destination workbasket has been skipped and needs to be performed
|
// destination workbasket has been skipped and needs to be performed
|
||||||
|
@ -173,7 +176,7 @@ public class TaskServiceImpl implements TaskService {
|
||||||
task.setWorkbasketId(destinationWorkbasketId);
|
task.setWorkbasketId(destinationWorkbasketId);
|
||||||
task.setModified(Timestamp.valueOf(LocalDateTime.now()));
|
task.setModified(Timestamp.valueOf(LocalDateTime.now()));
|
||||||
taskMapper.update(task);
|
taskMapper.update(task);
|
||||||
|
|
||||||
return getTaskById(taskId);
|
return getTaskById(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@ package org.taskana.impl;
|
||||||
|
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -10,6 +9,7 @@ import org.taskana.TaskanaEngine;
|
||||||
import org.taskana.WorkbasketService;
|
import org.taskana.WorkbasketService;
|
||||||
import org.taskana.exceptions.NotAuthorizedException;
|
import org.taskana.exceptions.NotAuthorizedException;
|
||||||
import org.taskana.exceptions.WorkbasketNotFoundException;
|
import org.taskana.exceptions.WorkbasketNotFoundException;
|
||||||
|
import org.taskana.impl.util.IdGenerator;
|
||||||
import org.taskana.model.Workbasket;
|
import org.taskana.model.Workbasket;
|
||||||
import org.taskana.model.WorkbasketAccessItem;
|
import org.taskana.model.WorkbasketAccessItem;
|
||||||
import org.taskana.model.WorkbasketAuthorization;
|
import org.taskana.model.WorkbasketAuthorization;
|
||||||
|
@ -21,6 +21,9 @@ import org.taskana.security.CurrentUserContext;
|
||||||
public class WorkbasketServiceImpl implements WorkbasketService {
|
public class WorkbasketServiceImpl implements WorkbasketService {
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(WorkbasketServiceImpl.class);
|
private static final Logger logger = LoggerFactory.getLogger(WorkbasketServiceImpl.class);
|
||||||
|
|
||||||
|
private static final String ID_PREFIX_WORKBASKET = "WBI";
|
||||||
|
private static final String ID_PREFIX_WORKBASKET_AUTHORIZATION = "WAI";
|
||||||
|
|
||||||
private TaskanaEngine taskanaEngine;
|
private TaskanaEngine taskanaEngine;
|
||||||
|
|
||||||
|
@ -64,7 +67,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
||||||
workbasket.setCreated(now);
|
workbasket.setCreated(now);
|
||||||
workbasket.setModified(now);
|
workbasket.setModified(now);
|
||||||
if (workbasket.getId() == null || workbasket.getId().isEmpty()) {
|
if (workbasket.getId() == null || workbasket.getId().isEmpty()) {
|
||||||
workbasket.setId(UUID.randomUUID().toString());
|
workbasket.setId(IdGenerator.generateWithPrefix(ID_PREFIX_WORKBASKET));
|
||||||
}
|
}
|
||||||
workbasketMapper.insert(workbasket);
|
workbasketMapper.insert(workbasket);
|
||||||
logger.debug("Workbasket '{}' created", workbasket.getId());
|
logger.debug("Workbasket '{}' created", workbasket.getId());
|
||||||
|
@ -106,7 +109,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WorkbasketAccessItem createWorkbasketAuthorization(WorkbasketAccessItem workbasketAccessItem) {
|
public WorkbasketAccessItem createWorkbasketAuthorization(WorkbasketAccessItem workbasketAccessItem) {
|
||||||
workbasketAccessItem.setId(UUID.randomUUID().toString());
|
workbasketAccessItem.setId(IdGenerator.generateWithPrefix(ID_PREFIX_WORKBASKET_AUTHORIZATION));
|
||||||
workbasketAccessMapper.insert(workbasketAccessItem);
|
workbasketAccessMapper.insert(workbasketAccessItem);
|
||||||
return workbasketAccessItem;
|
return workbasketAccessItem;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
package org.taskana.impl.util;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class IdGenerator {
|
||||||
|
|
||||||
|
private static final String SEPERATOR = ":";
|
||||||
|
|
||||||
|
public static String generateWithPrefix(String prefix) {
|
||||||
|
return new StringBuilder().append(prefix).append(SEPERATOR).append(UUID.randomUUID().toString()).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,13 +1,13 @@
|
||||||
CREATE TABLE TASKANA_SCHEMA_VERSION(
|
CREATE TABLE TASKANA_SCHEMA_VERSION(
|
||||||
ID VARCHAR(36) NOT NULL,
|
ID CHAR(40) NOT NULL,
|
||||||
VERSION VARCHAR(255) NOT NULL,
|
VERSION VARCHAR(255) NOT NULL,
|
||||||
PRIMARY KEY (ID)
|
PRIMARY KEY (ID)
|
||||||
);
|
);
|
||||||
INSERT INTO TASKANA_SCHEMA_VERSION VALUES ('1', '0.0.1');
|
INSERT INTO TASKANA_SCHEMA_VERSION VALUES ('1', '0.0.1');
|
||||||
|
|
||||||
CREATE TABLE TASK(
|
CREATE TABLE TASK(
|
||||||
ID VARCHAR(36) NOT NULL,
|
ID CHAR(40) NOT NULL,
|
||||||
TENANT_ID VARCHAR(36) NULL,
|
TENANT_ID VARCHAR(32) NULL,
|
||||||
CREATED TIMESTAMP NULL,
|
CREATED TIMESTAMP NULL,
|
||||||
CLAIMED TIMESTAMP NULL,
|
CLAIMED TIMESTAMP NULL,
|
||||||
COMPLETED TIMESTAMP NULL,
|
COMPLETED TIMESTAMP NULL,
|
||||||
|
@ -19,17 +19,17 @@ CREATE TABLE TASK(
|
||||||
PRIORITY INT NULL,
|
PRIORITY INT NULL,
|
||||||
STATE VARCHAR(20) NULL,
|
STATE VARCHAR(20) NULL,
|
||||||
TYPE VARCHAR(255) NULL,
|
TYPE VARCHAR(255) NULL,
|
||||||
WORKBASKETID VARCHAR(36) NULL,
|
WORKBASKETID CHAR(40) NULL,
|
||||||
OWNER VARCHAR(255) NULL,
|
OWNER VARCHAR(255) NULL,
|
||||||
PRIMARY_OBJ_REF_ID varchar(36) NULL,
|
PRIMARY_OBJ_REF_ID CHAR(40) NULL,
|
||||||
IS_READ BOOLEAN NOT NULL,
|
IS_READ BOOLEAN NOT NULL,
|
||||||
IS_TRANSFERRED BOOLEAN NOT NULL,
|
IS_TRANSFERRED BOOLEAN NOT NULL,
|
||||||
PRIMARY KEY (ID)
|
PRIMARY KEY (ID)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE WORKBASKET(
|
CREATE TABLE WORKBASKET(
|
||||||
ID VARCHAR(36) NOT NULL,
|
ID CHAR(40) NOT NULL,
|
||||||
TENANT_ID VARCHAR(36) NULL,
|
TENANT_ID VARCHAR(32) NULL,
|
||||||
CREATED TIMESTAMP NULL,
|
CREATED TIMESTAMP NULL,
|
||||||
MODIFIED TIMESTAMP NULL,
|
MODIFIED TIMESTAMP NULL,
|
||||||
NAME VARCHAR(255) NOT NULL,
|
NAME VARCHAR(255) NOT NULL,
|
||||||
|
@ -40,14 +40,14 @@ CREATE TABLE WORKBASKET(
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE DISTRIBUTION_TARGETS(
|
CREATE TABLE DISTRIBUTION_TARGETS(
|
||||||
SOURCE_ID VARCHAR(36) NOT NULL,
|
SOURCE_ID CHAR(40) NOT NULL,
|
||||||
TARGET_ID VARCHAR(36) NOT NULL,
|
TARGET_ID CHAR(40) NOT NULL,
|
||||||
PRIMARY KEY (SOURCE_ID, TARGET_ID)
|
PRIMARY KEY (SOURCE_ID, TARGET_ID)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE CLASSIFICATION(
|
CREATE TABLE CLASSIFICATION(
|
||||||
ID VARCHAR(36) NOT NULL,
|
ID CHAR(40) NOT NULL,
|
||||||
TENANT_ID VARCHAR(36) NULL,
|
TENANT_ID VARCHAR(32) NULL,
|
||||||
PARENT_CLASSIFICATION_ID VARCHAR(255),
|
PARENT_CLASSIFICATION_ID VARCHAR(255),
|
||||||
CATEGORY VARCHAR(255),
|
CATEGORY VARCHAR(255),
|
||||||
TYPE VARCHAR(255),
|
TYPE VARCHAR(255),
|
||||||
|
@ -61,8 +61,8 @@ CREATE TABLE CLASSIFICATION(
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE WORKBASKET_ACCESS_LIST(
|
CREATE TABLE WORKBASKET_ACCESS_LIST(
|
||||||
ID VARCHAR(36) NOT NULL,
|
ID CHAR(40) NOT NULL,
|
||||||
WORKBASKET_ID VARCHAR(36) NOT NULL,
|
WORKBASKET_ID CHAR(40) NOT NULL,
|
||||||
USER_ID VARCHAR(255) NULL,
|
USER_ID VARCHAR(255) NULL,
|
||||||
GROUP_ID VARCHAR(255) NULL,
|
GROUP_ID VARCHAR(255) NULL,
|
||||||
READ BOOLEAN NOT NULL,
|
READ BOOLEAN NOT NULL,
|
||||||
|
@ -72,3 +72,13 @@ CREATE TABLE WORKBASKET_ACCESS_LIST(
|
||||||
DISTRIBUTE BOOLEAN NOT NULL,
|
DISTRIBUTE BOOLEAN NOT NULL,
|
||||||
PRIMARY KEY (ID)
|
PRIMARY KEY (ID)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE TABLE OBJECT_REFERENCE(
|
||||||
|
ID CHAR(40) NOT NULL,
|
||||||
|
TENANT_ID VARCHAR(32) NULL,
|
||||||
|
COMPANY VARCHAR(32) NOT NULL,
|
||||||
|
SYSTEM VARCHAR(32) NOT NULL,
|
||||||
|
SYSTEM_INSTANCE VARCHAR(32) NOT NULL,
|
||||||
|
TYPE VARCHAR(32) NOT NULL,
|
||||||
|
VALUE VARCHAR(128) NOT NULL
|
||||||
|
);
|
||||||
|
|
Loading…
Reference in New Issue