/*
* © Copyright IBM Corp. 2014
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.ibm.sbt.services.client.connections.activities;
import com.ibm.sbt.services.client.base.BaseService;
import com.ibm.sbt.services.client.base.ConnectionsConstants;
import com.ibm.sbt.services.client.base.NamedUrlPart;
import com.ibm.sbt.services.client.base.URLBuilder;
import com.ibm.sbt.services.client.base.URLContainer;
import com.ibm.sbt.services.client.base.Version;
import com.ibm.sbt.services.client.base.VersionedUrl;
/**
* @author mwallace
*
*/
public enum ActivityUrls implements URLContainer {
ACTIVITIES_SERVICE(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/service")), // Retrieving the Activities service document
MY_ACTIVITIES(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/activities")), // Getting the My Activities feed and creating activities
COMPLETED_ACTIVITIES(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/completed")), // Getting a feed of completed activities
ALL_ACTIVITIES(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/everything")), // Getting a feed of all activities
TODO_ENTRIES(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/todos")), // Getting a feed of entries in the to-do list
ACTIVITY_TAGS(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/tags")), // Getting a list of the tags assigned to all activities
ACTIVITY_CATEGORIES(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/categories")), // Getting a list of the categories assigned to this activity
TUNED_OUT_ACTIVITIES(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/tunedout")), // Getting a feed of the tuned out activities
ACTIVITY_TEMPLATES(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/entrytemplates?activityUuid={activityUuid}")), // Retrieves a feed of entry templates
TRASHED_ACTIVITIES(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/trash")), // Retrieves a feed of the activities and entries in the trash
TRASHED_ACTIVITY_NODES(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/trash?activityUuid={activityUuid}")), // Retrieves a feed of the activities and entries in the trash
ACTIVITY(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/activity?activityUuid={activityUuid}")), // Retrieving an Activity entry and creating an activity node
CHANGE_PRIORITY(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/activitynode?activityNodeUuid={activityNodeUuid}&priority={priority}")), // Change the priority of the specified activity
SET_COMPLETION(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/activitynode?activityNodeUuid={activityNodeUuid}&completed={completed}")), // Set the completion status of the specified activity
ACTIVITY_NODE(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/activitynode?activityNodeUuid={activityNodeUuid}")), // Retrieve, update, deleting activity nodes programmatically
TRASHED_ACTIVITY_NODE(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/trashednode?activityNodeUuid={activityNodeUuid}")), // Restoring activity nodes programmatically
ACTIVITY_ACL(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/acl?activityUuid={activityUuid}")), // Adding an activity member programmatically
ACTIVITY_HISTORY(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/history?activityUuid={activityUuid}")), // Retrieving the history for an activity
ACTIVITY_MEMBER(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/acl?activityUuid={activityUuid}&memberid={memberId}")), // Retrieve, update and delete an activity member programmatically
DESCENDANTS(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/descendants?activityNodeUuid={activityNodeUuid}")), // Getting a feed of the Activity descendants
ACTIVITY_DESCENDANTS(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/activitydescendants?activityUuid={activityUuid}")), // Getting a feed of the Activity descendants
ACTIVITY_NODECHILDREN(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/nodechildren?activityNodeUuid={activityNodeUuid}")), // Getting a feed of the Activity descendants
MOVE_FIELD(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/moveField?destNodeUuid={destinationUuid}&fieldUuid={fieldUuid}")), // Move a field from an ActivityNode to another
MOVE_NODE(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/moveEntry?activityNodeUuid={activityNodeUuid}&destNodeUuid={destinationUuid}")), // Move a field from an ActivityNode to another
COPY_NODE(new VersionedUrl(ConnectionsConstants.v4_0, "{activities}/service/atom2/copyEntry?activityNodeUuid={activityNodeUuid}&destNodeUuid={destinationUuid}")); // Move a field from an ActivityNode to another
private URLBuilder builder;
static final public NamedUrlPart nodePart(String nodeUuid) {
return new NamedUrlPart("nodeUuid", nodeUuid);
}
static final public NamedUrlPart activityNodePart(String activityNodeUuid) {
return new NamedUrlPart("activityNodeUuid", activityNodeUuid);
}
static final public NamedUrlPart priorityPart(int priority) {
return new NamedUrlPart("priority", "" + priority);
}
static final public NamedUrlPart completedPart(boolean completed) {
return new NamedUrlPart("completed", completed ? "yes" : "no");
}
static final public NamedUrlPart activityPart(String activityUuid) {
return new NamedUrlPart("activityUuid", activityUuid);
}
static final public NamedUrlPart memberPart(String memberId) {
return new NamedUrlPart("memberId", memberId);
}
static final public NamedUrlPart destinationPart(String destinationUuid) {
return new NamedUrlPart("destinationUuid", destinationUuid);
}
static final public NamedUrlPart fieldPart(String fieldUuid) {
return new NamedUrlPart("fieldUuid", fieldUuid);
}
private ActivityUrls(VersionedUrl... urlVersions) {
builder = new URLBuilder(urlVersions);
}
public String format(BaseService service, NamedUrlPart... args) {
return builder.format(service, args);
}
public String getPattern(Version version){
return builder.getPattern(version).getUrlPattern();
}
}