Class RelationResource
- java.lang.Object
-
- com.atlassian.confluence.plugins.restapi.experimental.resources.RelationResource
-
@ExperimentalApi public class RelationResource extends Object
A REST resource for manipulating relationships between users, spaces and content.
Favourite relationships between users and space, page or blog post are supported. More relationship types will become available as development progresses.- Since:
- 5.9
-
-
Constructor Summary
Constructors Constructor Description RelationResource(RelationService relationService, PersonService personService)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description javax.ws.rs.core.Response
create(String sourceType, String sourceKey, String relationName, String targetType, String targetKey, ContentStatus sourceStatus, ContentStatus targetStatus, Integer sourceVersion, Integer targetVersion)
Add a relationship between two user, space, or content entities.javax.ws.rs.core.Response
delete(String sourceType, String sourceKey, String relationName, String targetType, String targetKey, ContentStatus sourceStatus, ContentStatus targetStatus, Integer sourceVersion, Integer targetVersion)
Remove a relationship between two user, space, or content entities.javax.ws.rs.core.Response
isRelated(String sourceType, String sourceKey, String relationName, String targetType, String targetKey, ContentStatus sourceStatus, ContentStatus targetStatus, Integer sourceVersion, Integer targetVersion)
Determines whether a relationship exists between two user, space or content entities.
-
-
-
Constructor Detail
-
RelationResource
public RelationResource(RelationService relationService, PersonService personService)
-
-
Method Detail
-
isRelated
public javax.ws.rs.core.Response isRelated(String sourceType, String sourceKey, String relationName, String targetType, String targetKey, ContentStatus sourceStatus, ContentStatus targetStatus, Integer sourceVersion, Integer targetVersion) throws NotFoundException, PermissionException
Determines whether a relationship exists between two user, space or content entities.
Example request URI(s):
GET http://localhost:8080/confluence/rest/experimental/relation/user/current/favourite/toSpace/SPC
GET http://localhost:8080/confluence/rest/experimental/relation/user/current/favourite/toContent/1234
- Parameters:
sourceType
- the source type of the relationship - possible values are user, space or content for favourites, only 'user' is permittedsourceKey
- the identifier of the source of the relationship - possible values are a user key, 'current' (logged in user), space key or content identifier
for favourites, only a user key or 'current' is permittedrelationName
- the name of the relationship type (must be 'favourite')targetType
- the target type of the relationship - possible values are user, space or content
for favourites, only 'space' or 'content' is permittedtargetKey
- the identifier of the target of the relationship - possible values are a user key, 'current' (logged in user), space key or content identifier
for favourites, only a space key or content identifier is permittedsourceStatus
- The status of the source - this parameter is only used when the source has a type of contenttargetStatus
- The status of the target - this parameter is only used when the target has a type of contentsourceVersion
- The version of the source - this parameter is only used when the source has a type of content and status of historicaltargetVersion
- The version of the target - this parameter is only used when the target has a type of content and status of historical- Throws:
NotFoundException
PermissionException
-
create
public javax.ws.rs.core.Response create(String sourceType, String sourceKey, String relationName, String targetType, String targetKey, ContentStatus sourceStatus, ContentStatus targetStatus, Integer sourceVersion, Integer targetVersion) throws NotFoundException, PermissionException
Add a relationship between two user, space, or content entities.
Favourite relationships between users and space, page or blog posts are supported. More relationship types will become available as development progresses.
For favourites, the current user can create a favourite relationship between themselves and a space, page or blog post. A space administrator can add a favourite relationship for any user.
Example request URI(s):
PUT http://localhost:8080/confluence/rest/experimental/relation/user/current/favourite/toSpace/SPC
PUT http://localhost:8080/confluence/rest/experimental/relation/user/current/favourite/toContent/1234
- Parameters:
sourceType
- the source type of the relationship - possible values are user, space or content for favourites, only 'user' is permittedsourceKey
- the identifier of the source of the relationship - possible values are a user key, 'current' (logged in user), space key or content identifier
for favourites, only a user key or 'current' is permittedrelationName
- the name of the relationship type (must be 'favourite')targetType
- the target type of the relationship - possible values are user, space or content
for favourites, only 'space' or 'content' is permittedtargetKey
- the identifier of the target of the relationship - possible values are a user key, 'current' (logged in user), space key or content identifier
for favourites, only a space key or content identifier is permittedsourceStatus
- The status of the source - this parameter is only used when the source has a type of contenttargetStatus
- The status of the target - this parameter is only used when the target has a type of contentsourceVersion
- The version of the source - this parameter is only used when the source has a type of content and status of historicaltargetVersion
- The version of the target - this parameter is only used when the target has a type of content and status of historical- Throws:
NotFoundException
PermissionException
-
delete
public javax.ws.rs.core.Response delete(String sourceType, String sourceKey, String relationName, String targetType, String targetKey, ContentStatus sourceStatus, ContentStatus targetStatus, Integer sourceVersion, Integer targetVersion) throws NotFoundException, PermissionException
Remove a relationship between two user, space, or content entities.
For favourites, the current user can delete their own favourite relationships. A space administrator can delete a favourite relationship for any user.
Example request URI(s):
DELETE http://localhost:8080/confluence/rest/experimental/relation/user/current/favourite/toSpace/SPC
DELETE http://localhost:8080/confluence/rest/experimental/relation/user/current/favourite/toContent/1234
- Parameters:
sourceType
- the source type of the relationship - possible values are user, space or content for favourites, only 'user' is permittedsourceKey
- the identifier of the source of the relationship - possible values are a user key, 'current' (logged in user), space key or content identifier
for favourites, only a user key or 'current' is permittedrelationName
- the name of the relationship type (must be 'favourite')targetType
- the target type of the relationship - possible values are user, space or content
for favourites, only 'space' or 'content' is permittedtargetKey
- the identifier of the target of the relationship - possible values are a user key, 'current' (logged in user), space key or content identifier
for favourites, only a space key or content identifier is permittedsourceStatus
- The status of the source - this parameter is only used when the source has a type of contenttargetStatus
- The status of the target - this parameter is only used when the target has a type of contentsourceVersion
- The version of the source - this parameter is only used when the source has a type of content and status of historicaltargetVersion
- The version of the target - this parameter is only used when the target has a type of content and status of historical- Throws:
NotFoundException
PermissionException
-
-