added undocumented ShareApi

This commit is contained in:
Brian Long 2022-05-03 19:03:30 +01:00
parent ed9fe6dfc5
commit c38b82f75b
7 changed files with 178 additions and 0 deletions

View File

@ -6,6 +6,7 @@ import com.inteligr8.alfresco.activiti.api.AppVersionApi;
import com.inteligr8.alfresco.activiti.api.ModelsApi;
import com.inteligr8.alfresco.activiti.api.ProcessInstancesApi;
import com.inteligr8.alfresco.activiti.api.ProfileApi;
import com.inteligr8.alfresco.activiti.api.ShareApi;
import com.inteligr8.alfresco.activiti.api.TasksApi;
/**
@ -45,5 +46,13 @@ public interface ApsPublicRestApi {
default TasksApi getTasksApi() {
return this.getApi(TasksApi.class);
}
/**
* The following are not part of the official open source or enterprise APIs
*/
default ShareApi getShareApi() {
return this.getApi(ShareApi.class);
}
}

View File

@ -0,0 +1,37 @@
package com.inteligr8.alfresco.activiti.api;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.inteligr8.alfresco.activiti.model.ResultList;
import com.inteligr8.alfresco.activiti.model.ShareInfoRequest;
import com.inteligr8.alfresco.activiti.model.SharePermission;
/**
* This is an undocumented API.
*
* @author brian@inteligr8.com
*/
@Path("/app/rest/models")
public interface ShareApi {
@GET
@Path("/{modelId}/share-info")
@Produces({ MediaType.APPLICATION_JSON })
public ResultList<SharePermission> getShareInfo(
@PathParam("modelId") String modelId);
@PUT
@Path("/{modelId}/share-info")
@Consumes({ MediaType.APPLICATION_JSON })
public void setShareInfo(
@PathParam("modelId") String modelId,
ShareInfoRequest request);
}

View File

@ -0,0 +1,33 @@
package com.inteligr8.alfresco.activiti.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Permission extends PermissionLight {
@JsonProperty
private UserLight person;
@JsonProperty
private GroupLight group;
public UserLight getPerson() {
return person;
}
public void setPerson(UserLight person) {
this.person = person;
}
public GroupLight getGroup() {
return group;
}
public void setGroup(GroupLight group) {
this.group = group;
}
}

View File

@ -0,0 +1,13 @@
package com.inteligr8.alfresco.activiti.model;
import com.fasterxml.jackson.annotation.JsonProperty;
public enum PermissionLevel {
@JsonProperty("write")
Write,
@JsonProperty("read")
Read
}

View File

@ -0,0 +1,32 @@
package com.inteligr8.alfresco.activiti.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class PermissionLight {
@JsonProperty
private String id;
@JsonProperty
private PermissionLevel permission;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public PermissionLevel getPermission() {
return permission;
}
public void setPermission(PermissionLevel permission) {
this.permission = permission;
}
}

View File

@ -0,0 +1,20 @@
package com.inteligr8.alfresco.activiti.model;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ShareInfoRequest {
@JsonProperty
private List<PermissionLight> added;
@JsonProperty
private List<PermissionLight> removed;
@JsonProperty
private List<PermissionLight> updated;
}

View File

@ -0,0 +1,34 @@
package com.inteligr8.alfresco.activiti.model;
import java.time.OffsetDateTime;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class SharePermission extends Permission {
@JsonProperty
private OffsetDateTime shareDate;
@JsonProperty
private Long sharedBy;
public OffsetDateTime getShareDate() {
return shareDate;
}
public void setShareDate(OffsetDateTime shareDate) {
this.shareDate = shareDate;
}
public Long getSharedBy() {
return sharedBy;
}
public void setSharedBy(Long sharedBy) {
this.sharedBy = sharedBy;
}
}