From 1d958741dc8e5df038821f8d3cca3aba75aebe63 Mon Sep 17 00:00:00 2001 From: Alfredo Navarro Date: Wed, 28 Dec 2022 18:24:44 +0100 Subject: [PATCH 1/6] Removed git excl. file --- .gitignore | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index d5307fa7..00000000 --- a/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -# Properties for testing -**/app.properties - -# Integration tests -**/*IT.java - -# Compilation files -.* -target/ -*.class -bin/ - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.jar -*.war -*.ear - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* - -#IntelliJ project/module files -*.iml From 3f9f7cf3b1b96d92345de59073b29d9dfd9de094 Mon Sep 17 00:00:00 2001 From: Alfredo Navarro Date: Thu, 5 Jan 2023 19:42:02 +0100 Subject: [PATCH 2/6] First implementation of full Workflow functionality --- .../java/com/bynder/sdk/api/BynderApi.java | 66 ++++++ src/main/java/com/bynder/sdk/model/User.java | 161 ++++++++++++++ .../bynder/sdk/model/workflow/Campaign.java | 88 ++++++++ .../bynder/sdk/model/workflow/CampaignId.java | 10 + .../com/bynder/sdk/model/workflow/Job.java | 113 ++++++++++ .../sdk/model/workflow/JobActionResponse.java | 4 + .../bynder/sdk/model/workflow/JobMedia.java | 92 ++++++++ .../sdk/model/workflow/JobMediaPreview.java | 16 ++ .../sdk/model/workflow/JobMediaStatus.java | 28 +++ .../bynder/sdk/model/workflow/JobPreset.java | 27 +++ .../bynder/sdk/model/workflow/JobStatus.java | 27 +++ .../com/bynder/sdk/model/workflow/Stage.java | 37 ++++ .../sdk/model/workflow/StagePreset.java | 64 ++++++ .../sdk/model/workflow/StageStatus.java | 27 +++ .../WorkflowAssetbankMetaproperty.java | 13 ++ .../sdk/model/workflow/WorkflowGroup.java | 47 +++++ .../model/workflow/WorkflowMetaproperty.java | 66 ++++++ .../workflow/WorkflowMetapropertyOption.java | 51 +++++ .../sdk/model/workflow/WorkflowUser.java | 26 +++ .../java/com/bynder/sdk/query/OrderBy.java | 7 +- .../sdk/query/workflow/CampaignDataQuery.java | 83 ++++++++ .../sdk/query/workflow/CampaignQuery.java | 14 ++ .../sdk/query/workflow/JobCreateQuery.java | 83 ++++++++ .../sdk/query/workflow/JobModifyQuery.java | 110 ++++++++++ .../sdk/query/workflow/JobPresetQuery.java | 14 ++ .../bynder/sdk/query/workflow/JobQuery.java | 167 +++++++++++++++ .../sdk/query/workflow/StageCreateQuery.java | 69 ++++++ .../sdk/query/workflow/StageModifyQuery.java | 26 +++ .../workflow/WorkflowGroupDataQuery.java | 31 +++ .../query/workflow/WorkflowGroupQuery.java | 14 ++ .../workflow/WorkflowMetapropertyQuery.java | 14 ++ .../com/bynder/sdk/sample/AppProperties.java | 43 ++++ .../com/bynder/sdk/sample/WorkflowSample.java | 162 ++++++++++++++ .../com/bynder/sdk/service/BynderClient.java | 3 + .../bynder/sdk/service/BynderClientImpl.java | 12 ++ .../sdk/service/workflow/WorkflowService.java | 68 ++++++ .../service/workflow/WorkflowServiceImpl.java | 131 ++++++++++++ .../bynder/sdk/service/BynderClientTest.java | 1 + .../workflow/WorkflowServiceImplTest.java | 199 ++++++++++++++++++ 39 files changed, 2211 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/bynder/sdk/model/User.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/Campaign.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/CampaignId.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/Job.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/JobActionResponse.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/JobMedia.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/JobMediaPreview.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/JobMediaStatus.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/JobPreset.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/JobStatus.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/Stage.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/StagePreset.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/StageStatus.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/WorkflowAssetbankMetaproperty.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/WorkflowGroup.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/WorkflowMetaproperty.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/WorkflowMetapropertyOption.java create mode 100644 src/main/java/com/bynder/sdk/model/workflow/WorkflowUser.java create mode 100644 src/main/java/com/bynder/sdk/query/workflow/CampaignDataQuery.java create mode 100644 src/main/java/com/bynder/sdk/query/workflow/CampaignQuery.java create mode 100644 src/main/java/com/bynder/sdk/query/workflow/JobCreateQuery.java create mode 100644 src/main/java/com/bynder/sdk/query/workflow/JobModifyQuery.java create mode 100644 src/main/java/com/bynder/sdk/query/workflow/JobPresetQuery.java create mode 100644 src/main/java/com/bynder/sdk/query/workflow/JobQuery.java create mode 100644 src/main/java/com/bynder/sdk/query/workflow/StageCreateQuery.java create mode 100644 src/main/java/com/bynder/sdk/query/workflow/StageModifyQuery.java create mode 100644 src/main/java/com/bynder/sdk/query/workflow/WorkflowGroupDataQuery.java create mode 100644 src/main/java/com/bynder/sdk/query/workflow/WorkflowGroupQuery.java create mode 100644 src/main/java/com/bynder/sdk/query/workflow/WorkflowMetapropertyQuery.java create mode 100644 src/main/java/com/bynder/sdk/sample/AppProperties.java create mode 100644 src/main/java/com/bynder/sdk/sample/WorkflowSample.java create mode 100644 src/main/java/com/bynder/sdk/service/workflow/WorkflowService.java create mode 100644 src/main/java/com/bynder/sdk/service/workflow/WorkflowServiceImpl.java create mode 100644 src/test/java/com/bynder/sdk/service/workflow/WorkflowServiceImplTest.java diff --git a/src/main/java/com/bynder/sdk/api/BynderApi.java b/src/main/java/com/bynder/sdk/api/BynderApi.java index bd964a6f..0f812af9 100644 --- a/src/main/java/com/bynder/sdk/api/BynderApi.java +++ b/src/main/java/com/bynder/sdk/api/BynderApi.java @@ -12,6 +12,8 @@ import com.bynder.sdk.model.upload.PollStatus; import com.bynder.sdk.model.upload.SaveMediaResponse; import com.bynder.sdk.model.upload.UploadRequest; +import com.bynder.sdk.model.workflow.*; +import com.bynder.sdk.query.workflow.*; import io.reactivex.Observable; import retrofit2.Response; import retrofit2.http.*; @@ -291,4 +293,68 @@ Observable> shareCollection(@Path("id") String collectionId, @FormUrlEncoded @POST("/api/v4/media/save/") Observable> saveMedia(@FieldMap Map params); + + @GET("/api/workflow/campaigns/") + Observable>> getAllCampaigns(); + + @GET("/api/workflow/campaigns/{id}/") + Observable> getCampaign(@Path("id") String campaignId); + + @POST("/api/workflow/campaigns/") + Observable> createCampaign(@Body CampaignDataQuery body); + + @PUT("/api/workflow/campaigns/{id}/") + Observable> modifyCampaign(@Path("id") String campaignId, @Body CampaignDataQuery body); + + @DELETE("/api/workflow/campaigns/{id}/") + Observable> deleteCampaign(@Path("id") String campaignId); + + @GET("/api/workflow/presets/job/{id}/") + Observable> getJobPreset(@Path("id") String jobPresetId); + + @GET("/api/workflow/jobs/") + Observable>> getJobs(@QueryMap Map params); + + @GET("/api/workflow/campaigns/{id}/jobs/") + Observable>> getCampaignJobs(@Path("id") String campaignId, @QueryMap Map params); + + @GET("/api/workflow/jobs/{id}/") + Observable> getJob(@Path("id") String jobId); + + @GET("/api/workflow/jobs/{id}/media/") + Observable>> getJobMedia(@Path("id") String jobId); + + @POST("/api/workflow/jobs/") + Observable> createJob(@Body JobCreateQuery body); + + @PUT("/api/workflow/jobs/{id}/") + Observable> modifyJob(@Path("id") String jobId, @Body JobModifyQuery body); + + @DELETE("/api/workflow/jobs/{id}/") + Observable> deleteJob(@Path("id") String jobId); + + @GET("api/workflow/metaproperties/") + Observable>> getAllWorkflowMetaproperties(); + + @GET("api/workflow/metaproperties/{id}/") + Observable> getWorkflowMetaproperty(@Path("id") String metapropertyId); + + @GET("api/workflow/users/") + Observable>> getAllWorkflowUsers(); + + @GET("api/workflow/groups/") + Observable>> getAllWorkflowGroups(); + + @GET("api/workflow/groups/{id}/") + Observable> getWorkflowGroup(@Path("id") String groupId); + + @POST("api/workflow/groups/") + Observable> createWorkflowGroup(@Body WorkflowGroupDataQuery body); + + @PUT("api/workflow/groups/{id}/") + Observable> updateWorkflowGroup(@Path("id") String groupId, + @Body WorkflowGroupDataQuery body); + + @DELETE("api/workflow/groups/{id}/") + Observable> deleteWorkflowGroup(@Path("id") String groupId); } diff --git a/src/main/java/com/bynder/sdk/model/User.java b/src/main/java/com/bynder/sdk/model/User.java new file mode 100644 index 00000000..47c4bb4e --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/User.java @@ -0,0 +1,161 @@ +/* + * Copyright (c) 2017 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ +package com.bynder.sdk.model; + +import com.google.gson.annotations.SerializedName; + +/** + * This represents a Bynder User + */ +public class User { + + /** + * Id of the user logged in. + */ + private String userId; + /** + * Token key returned by API. + */ + private String tokenKey; + /** + * Token secret returned by API. + */ + private String tokenSecret; + /** + * True if access was given to the username/password pair. + */ + @SerializedName(value = "access") + private Boolean hasAccess; + + private String id; + + @SerializedName(value = "username") + private String userName; + + private String name; + + private String email; + + private String email2; + + @SerializedName(value = "active") + private Boolean isActive; + + private String profileId; + + private String lastLogin; + + private String firstName; + + private String lastName; + + private String infix; + + public String getUserId() { + return userId; + } + + public String getTokenKey() { + return tokenKey; + } + + public String getTokenSecret() { + return tokenSecret; + } + + public Boolean hasAccess() { + return hasAccess; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getEmail2() { + return email2; + } + + public void setEmail2(String email2) { + this.email2 = email2; + } + + public Boolean getIsActive() { + return isActive; + } + + public void setIsActive(Boolean isActive) { + this.isActive = isActive; + } + + public String getProfileId() { + return profileId; + } + + public void setProfileId(String profileId) { + this.profileId = profileId; + } + + public String getLastLogin() { + return lastLogin; + } + + public void setLastLogin(String lastLogin) { + this.lastLogin = lastLogin; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getInfix() { + return infix; + } + + public void setInfix(String infix) { + this.infix = infix; + } +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/Campaign.java b/src/main/java/com/bynder/sdk/model/workflow/Campaign.java new file mode 100644 index 00000000..2821dcac --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/Campaign.java @@ -0,0 +1,88 @@ +package com.bynder.sdk.model.workflow; + +import com.google.gson.annotations.SerializedName; + +import java.util.Map; + +public class Campaign { + + @SerializedName(value = "ID") + private String id; + + private String name; + + private String key; + + private String description; + + @SerializedName(value = "accountID") + private String accountId; + + private String dateCreated; + + @SerializedName(value = "createdByID") + private String createdById; + + private String dateModified; + + @SerializedName(value = "responsibleID") + private String responsibleId; + + private Boolean closed; + + private String dateStart; + + private String deadline; + + @SerializedName(value = "presetID") + private String presetID; + + @SerializedName(value = "thumbnailURL") + private String thumbnailUrl; + + private Map campaignMetaproperties; + + public String getId() { + return id; + } + + public String getName() { + return name; + } + + public String getKey() { + return key; + } + + public String getDescription() { + return description; + } + + public String getDateCreated() { + return dateCreated; + } + + public String getDateModified() { + return dateModified; + } + + public Boolean getClosed() { + return closed; + } + + public String getDateStart() { + return dateStart; + } + + public String getDeadline() { + return deadline; + } + + public Map getCampaignMetaproperties() { + return campaignMetaproperties; + } + + public String getResponsibleId() { + return responsibleId; + } +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/CampaignId.java b/src/main/java/com/bynder/sdk/model/workflow/CampaignId.java new file mode 100644 index 00000000..98076617 --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/CampaignId.java @@ -0,0 +1,10 @@ +package com.bynder.sdk.model.workflow; + +public class CampaignId { + + private String id; + + public String getId() { + return id; + } +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/Job.java b/src/main/java/com/bynder/sdk/model/workflow/Job.java new file mode 100644 index 00000000..8b4ddaf7 --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/Job.java @@ -0,0 +1,113 @@ +package com.bynder.sdk.model.workflow; + +import com.google.gson.annotations.SerializedName; + +import java.util.List; +import java.util.Map; + +public class Job { + + private String id; + + private String name; + + private String deadline; + + private String description; + + private String dateCreated; + + private Boolean basedOnPreset; + + @SerializedName(value = "presetID") + private String presetId; + + private String dateModified; + + @SerializedName(value = "campaignID") + private String campaignId; + + @SerializedName(value = "accountableID") + private String accountableId; + + @SerializedName(value = "createdByID") + private String createdById; + + private Map jobMetaproperties; + + @SerializedName(value = "job_previous_stage") + private Stage previousStage; + + @SerializedName(value = "job_active_stage") + private Stage activeStage; + + @SerializedName(value = "job_next_stage") + private Stage nextStage; + + @SerializedName(value = "job_stages") + private List stages; + + public String getId() { + return id; + } + + public String getName() { + return name; + } + + public String getDeadline() { + return deadline; + } + + public String getDescription() { + return description; + } + + public String getDateCreated() { + return dateCreated; + } + + public Boolean getBasedOnPreset() { + return basedOnPreset; + } + + public String getPresetId() { + return presetId; + } + + public String getDateModified() { + return dateModified; + } + + public String getCampaignId() { + return campaignId; + } + + public String getAccountableId() { + return accountableId; + } + + public String getCreatedById() { + return createdById; + } + + public Map getJobMetaproperties() { + return jobMetaproperties; + } + + public Stage getPreviousStage() { + return previousStage; + } + + public Stage getActiveStage() { + return activeStage; + } + + public Stage getNextStage() { + return nextStage; + } + + public List getStages() { + return stages; + } +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/JobActionResponse.java b/src/main/java/com/bynder/sdk/model/workflow/JobActionResponse.java new file mode 100644 index 00000000..6a032565 --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/JobActionResponse.java @@ -0,0 +1,4 @@ +package com.bynder.sdk.model.workflow; + +public class JobActionResponse { +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/JobMedia.java b/src/main/java/com/bynder/sdk/model/workflow/JobMedia.java new file mode 100644 index 00000000..63049099 --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/JobMedia.java @@ -0,0 +1,92 @@ +package com.bynder.sdk.model.workflow; + +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class JobMedia { + + private String id; + + @SerializedName(value = "filename") + private String fileName; + + @SerializedName(value = "uploader_name") + private String uploaderMame; + + @SerializedName(value = "responsible_name") + private String responsibleName; + + private String dateCreated; + + private String dateModified; + + private String orientation; + + @SerializedName(value = "original_url") + private String originalUrl; + + private JobMediaStatus status; + + @SerializedName(value = "versionParentID") + private String versionParentId; + + private Integer version; + + private List previews; + + @SerializedName(value = "sub_versions") + private List subVersions; + + public String getId() { + return id; + } + + public String getFileName() { + return fileName; + } + + public String getUploaderMame() { + return uploaderMame; + } + + public String getResponsibleName() { + return responsibleName; + } + + public String getDateCreated() { + return dateCreated; + } + + public String getDateModified() { + return dateModified; + } + + public String getOrientation() { + return orientation; + } + + public String getOriginalUrl() { + return originalUrl; + } + + public JobMediaStatus getStatus() { + return status; + } + + public String getVersionParentId() { + return versionParentId; + } + + public Integer getVersion() { + return version; + } + + public List getPreviews() { + return previews; + } + + public List getSubVersions() { + return subVersions; + } +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/JobMediaPreview.java b/src/main/java/com/bynder/sdk/model/workflow/JobMediaPreview.java new file mode 100644 index 00000000..1adc8439 --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/JobMediaPreview.java @@ -0,0 +1,16 @@ +package com.bynder.sdk.model.workflow; + +public class JobMediaPreview { + + private String type; + + private String url; + + public String getType() { + return type; + } + + public String getUrl() { + return url; + } +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/JobMediaStatus.java b/src/main/java/com/bynder/sdk/model/workflow/JobMediaStatus.java new file mode 100644 index 00000000..744edf77 --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/JobMediaStatus.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2017 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ +package com.bynder.sdk.model.workflow; + +/** + * Enum used to define how API results should be ordered. + */ +public enum JobMediaStatus { + + AWAITING_APPROVAL("AwaitingApproval"), PROCESSING("Processing"), + APPROVED("Approved"), REJECTED("Rejected"), + FAILED("Failed"), DONE("Done"); + + private final String name; + + JobMediaStatus(final String name) { + this.name = name; + } + + @Override + public String toString() { + return name; + } +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/JobPreset.java b/src/main/java/com/bynder/sdk/model/workflow/JobPreset.java new file mode 100644 index 00000000..5d935dd7 --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/JobPreset.java @@ -0,0 +1,27 @@ +package com.bynder.sdk.model.workflow; + +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class JobPreset { + + @SerializedName(value = "ID") + private String id; + + private String name; + + private List stages; + + public String getId() { + return id; + } + + public String getName() { + return name; + } + + public List getStages() { + return stages; + } +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/JobStatus.java b/src/main/java/com/bynder/sdk/model/workflow/JobStatus.java new file mode 100644 index 00000000..2735940b --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/JobStatus.java @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2017 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ +package com.bynder.sdk.model.workflow; + +/** + * Enum used to define how API results should be ordered. + */ +public enum JobStatus { + + APPROVED("Approved"), NEEDS_CHANGES("NeedsChanges"), + ACTIVE("Active"), CANCELLED("Cancelled"); + + private final String name; + + JobStatus(final String name) { + this.name = name; + } + + @Override + public String toString() { + return name; + } +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/Stage.java b/src/main/java/com/bynder/sdk/model/workflow/Stage.java new file mode 100644 index 00000000..fc5546ea --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/Stage.java @@ -0,0 +1,37 @@ +package com.bynder.sdk.model.workflow; + +import com.google.gson.annotations.SerializedName; + +public class Stage { + + private String id; + + private String status; + + private int position; + + private WorkflowUser responsibleUser; + + @SerializedName(value = "responsible_group") + private WorkflowGroup responsibleGroup; + + public String getId() { + return id; + } + + public String getStatus() { + return status; + } + + public int getPosition() { + return position; + } + + public WorkflowUser getResponsibleUser() { + return responsibleUser; + } + + public WorkflowGroup getResponsibleGroup() { + return responsibleGroup; + } +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/StagePreset.java b/src/main/java/com/bynder/sdk/model/workflow/StagePreset.java new file mode 100644 index 00000000..f4aee35c --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/StagePreset.java @@ -0,0 +1,64 @@ +package com.bynder.sdk.model.workflow; + +import com.google.gson.annotations.SerializedName; + +public class StagePreset { + + @SerializedName(value = "ID") + private String id; + + private String name; + + private String type; + + private String description; + + private int position; + + @SerializedName(value = "responsibleID") + private String responsibleId; + + @SerializedName(value = "responsibleGroupID") + private String responsibleGroupId; + + @SerializedName(value = "restrictToGroupID") + private String restrictToGroupIDd; + + private String editableBy; + + public String getId() { + return id; + } + + public String getName() { + return name; + } + + public String getType() { + return type; + } + + public String getDescription() { + return description; + } + + public int getPosition() { + return position; + } + + public String getResponsibleId() { + return responsibleId; + } + + public String getResponsibleGroupId() { + return responsibleGroupId; + } + + public String getRestrictToGroupIDd() { + return restrictToGroupIDd; + } + + public String getEditableBy() { + return editableBy; + } +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/StageStatus.java b/src/main/java/com/bynder/sdk/model/workflow/StageStatus.java new file mode 100644 index 00000000..5342104a --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/StageStatus.java @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2017 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ +package com.bynder.sdk.model.workflow; + +/** + * Enum used to define how API results should be ordered. + */ +public enum StageStatus { + + APPROVED("Approved"), NEEDS_CHANGES("NeedsChanges"), + ACTIVE("Active"), CANCELLED("Cancelled"); + + private final String name; + + StageStatus(final String name) { + this.name = name; + } + + @Override + public String toString() { + return name; + } +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/WorkflowAssetbankMetaproperty.java b/src/main/java/com/bynder/sdk/model/workflow/WorkflowAssetbankMetaproperty.java new file mode 100644 index 00000000..60b378cd --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/WorkflowAssetbankMetaproperty.java @@ -0,0 +1,13 @@ +package com.bynder.sdk.model.workflow; + +import com.google.gson.annotations.SerializedName; + +public class WorkflowAssetbankMetaproperty { + + @SerializedName(value = "cf_id") + private String id; + + public String getId() { + return id; + } +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/WorkflowGroup.java b/src/main/java/com/bynder/sdk/model/workflow/WorkflowGroup.java new file mode 100644 index 00000000..41c469f2 --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/WorkflowGroup.java @@ -0,0 +1,47 @@ +package com.bynder.sdk.model.workflow; + +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class WorkflowGroup { + + @SerializedName(value = "ID") + private String id; + + private String name; + + @SerializedName(value = "createdByID") + private String createdById; + + private String dateCreated; + + @SerializedName(value = "accountID") + private String accountId; + + private List users; + + public String getId() { + return id; + } + + public String getName() { + return name; + } + + public String getCreatedById() { + return createdById; + } + + public String getDateCreated() { + return dateCreated; + } + + public String getAccountId() { + return accountId; + } + + public List getUsers() { + return users; + } +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/WorkflowMetaproperty.java b/src/main/java/com/bynder/sdk/model/workflow/WorkflowMetaproperty.java new file mode 100644 index 00000000..0de8a764 --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/WorkflowMetaproperty.java @@ -0,0 +1,66 @@ +package com.bynder.sdk.model.workflow; + +import com.google.gson.annotations.SerializedName; + +import java.util.List; + +public class WorkflowMetaproperty { + + @SerializedName(value = "ID") + private String id; + + private String label; + + @SerializedName(value = "short_name") + private String shortName; + + private String type; + + private String entity; + + private String dateCreated; + + @SerializedName(value = "created_by") + private WorkflowUser createdBy; + + @SerializedName(value = "assetbank_metaproperty") + private WorkflowAssetbankMetaproperty assetbankMetaproperty; + + private List options; + + public String getId() { + return id; + } + + public String getLabel() { + return label; + } + + public String getShortName() { + return shortName; + } + + public String getType() { + return type; + } + + public String getEntity() { + return entity; + } + + public String getDateCreated() { + return dateCreated; + } + + public WorkflowUser getCreatedBy() { + return createdBy; + } + + public WorkflowAssetbankMetaproperty getAssetbankMetaproperty() { + return assetbankMetaproperty; + } + + public List getOptions() { + return options; + } +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/WorkflowMetapropertyOption.java b/src/main/java/com/bynder/sdk/model/workflow/WorkflowMetapropertyOption.java new file mode 100644 index 00000000..f1aac083 --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/WorkflowMetapropertyOption.java @@ -0,0 +1,51 @@ +package com.bynder.sdk.model.workflow; + +import com.google.gson.annotations.SerializedName; + +public class WorkflowMetapropertyOption { + + @SerializedName(value = "ID") + private String id; + + @SerializedName(value = "metapropertyID") + private String metapropertyId; + + private String label; + + private int position; + + private Boolean isDefault; + + private String dateCreated; + + @SerializedName(value = "created_by") + private WorkflowUser createdBy; + + public String getId() { + return id; + } + + public String getMetapropertyId() { + return metapropertyId; + } + + public String getLabel() { + return label; + } + + public int getPosition() { + return position; + } + + public Boolean getIsDefault() { + return isDefault; + } + + public String getDateCreated() { + return dateCreated; + } + + public WorkflowUser getCreatedBy() { + return createdBy; + } +} \ No newline at end of file diff --git a/src/main/java/com/bynder/sdk/model/workflow/WorkflowUser.java b/src/main/java/com/bynder/sdk/model/workflow/WorkflowUser.java new file mode 100644 index 00000000..0c83168b --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/WorkflowUser.java @@ -0,0 +1,26 @@ +package com.bynder.sdk.model.workflow; + +import com.bynder.sdk.model.User; +import com.google.gson.annotations.SerializedName; + +public class WorkflowUser { + + @SerializedName(value = "ID") + private String id; + + private String fullName; + + private User bynderUser; + + public String getId() { + return id; + } + + public String getFullName() { + return fullName; + } + + public User getBynderUser() { + return bynderUser; + } +} diff --git a/src/main/java/com/bynder/sdk/query/OrderBy.java b/src/main/java/com/bynder/sdk/query/OrderBy.java index ede10f9e..c70e5d67 100644 --- a/src/main/java/com/bynder/sdk/query/OrderBy.java +++ b/src/main/java/com/bynder/sdk/query/OrderBy.java @@ -11,9 +11,10 @@ */ public enum OrderBy { - DATE_CREATED_ASC("dateCreated asc"), DATE_CREATED_DESC("dateCreated desc"), DATE_MODIFIED_ASC( - "dateModified asc"), DATE_MODIFIED_DESC("dateModified desc"), NAME_ASC( - "name asc"), NAME_DESC("name desc"); + DATE_CREATED_ASC("dateCreated asc"), DATE_CREATED_DESC("dateCreated desc"), + DATE_MODIFIED_ASC("dateModified asc"), DATE_MODIFIED_DESC("dateModified desc"), + DEADLINE_ASC("deadline asc"), DEADLINE_DESC("deadline desc"), + NAME_ASC("name asc"), NAME_DESC("name desc"); private final String name; diff --git a/src/main/java/com/bynder/sdk/query/workflow/CampaignDataQuery.java b/src/main/java/com/bynder/sdk/query/workflow/CampaignDataQuery.java new file mode 100644 index 00000000..22e5973f --- /dev/null +++ b/src/main/java/com/bynder/sdk/query/workflow/CampaignDataQuery.java @@ -0,0 +1,83 @@ +package com.bynder.sdk.query.workflow; + +import com.google.gson.annotations.SerializedName; + +import java.util.Map; + +public class CampaignDataQuery { + + private final String name; + + private final String key; + + @SerializedName(value = "responsibleID") + private final String responsibleId; + + private String description; + + private String dateStart; + + private String deadline; + + private String closed; + + private Map campaignMetaproperties; + + public CampaignDataQuery(String name, String key, String responsibleId) { + this.name = name; + this.key = key; + this.responsibleId = responsibleId; + } + + public String getName() { + return name; + } + + public String getKey() { + return key; + } + + public String getResponsibleId() { + return responsibleId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getDateStart() { + return dateStart; + } + + public void setDateStart(String dateStart) { + this.dateStart = dateStart; + } + + public String getDeadline() { + return deadline; + } + + public void setDeadline(String deadline) { + this.deadline = deadline; + } + + public String getClosed() { + return closed; + } + + public void setClosed(String closed) { + this.closed = closed; + } + + public Map getCampaignMetaproperties() { + return campaignMetaproperties; + } + + public void setCampaignMetaproperties(Map campaignMetaproperties) { + this.campaignMetaproperties = campaignMetaproperties; + } +} diff --git a/src/main/java/com/bynder/sdk/query/workflow/CampaignQuery.java b/src/main/java/com/bynder/sdk/query/workflow/CampaignQuery.java new file mode 100644 index 00000000..39e0599c --- /dev/null +++ b/src/main/java/com/bynder/sdk/query/workflow/CampaignQuery.java @@ -0,0 +1,14 @@ +package com.bynder.sdk.query.workflow; + +public class CampaignQuery { + + private final String id; + + public CampaignQuery(String id) { + this.id = id; + } + + public String getCampaignId() { + return id; + } +} diff --git a/src/main/java/com/bynder/sdk/query/workflow/JobCreateQuery.java b/src/main/java/com/bynder/sdk/query/workflow/JobCreateQuery.java new file mode 100644 index 00000000..24737edc --- /dev/null +++ b/src/main/java/com/bynder/sdk/query/workflow/JobCreateQuery.java @@ -0,0 +1,83 @@ +package com.bynder.sdk.query.workflow; + +import com.google.gson.annotations.SerializedName; + +import java.util.List; +import java.util.Map; + +public class JobCreateQuery { + + private final String name; + + private String description; + + private String deadline; + + @SerializedName(value = "campaignID") + private final String campaignID; + + @SerializedName(value = "accountableID") + private final String accountableId; + + @SerializedName(value = "presetID") + private final String presetId; + + private Map jobMetaproperties; + + private List stages; + + public JobCreateQuery(String name, String campaignId, String accountableId, String presetId) { + this.name = name; + this.campaignID = campaignId; + this.accountableId = accountableId; + this.presetId = presetId; + } + + public String getName() { + return name; + } + + public String getCampaignID() { + return campaignID; + } + + public String getAccountableId() { + return accountableId; + } + + public String getPresetId() { + return presetId; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getDeadline() { + return deadline; + } + + public void setDeadline(String deadline) { + this.deadline = deadline; + } + + public Map getJobMetaproperties() { + return jobMetaproperties; + } + + public void setJobMetaproperties(Map jobMetaproperties) { + this.jobMetaproperties = jobMetaproperties; + } + + public List getStages() { + return stages; + } + + public void setStages(List stages) { + this.stages = stages; + } +} diff --git a/src/main/java/com/bynder/sdk/query/workflow/JobModifyQuery.java b/src/main/java/com/bynder/sdk/query/workflow/JobModifyQuery.java new file mode 100644 index 00000000..6a8ece26 --- /dev/null +++ b/src/main/java/com/bynder/sdk/query/workflow/JobModifyQuery.java @@ -0,0 +1,110 @@ +package com.bynder.sdk.query.workflow; + +import com.google.gson.annotations.SerializedName; + +import java.util.Map; + +public class JobModifyQuery { + + private String id; + + private String name; + + private String description; + + private String deadline; + + @SerializedName(value = "campaignID") + private String campaignId; + + @SerializedName(value = "accountableID") + private String accountableId; + + private Map jobMetaproperties; + + private StageModifyQuery activeStage; + + private StageModifyQuery nextStage; + + private StageModifyQuery previousStage; + + public JobModifyQuery(String id) { + this.id = id; + } + + public String getId() { + return this.id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getDeadline() { + return deadline; + } + + public void setDeadline(String deadline) { + this.deadline = deadline; + } + + public String getCampaignId() { + return campaignId; + } + + public void setCampaignId(String campaignId) { + this.campaignId = campaignId; + } + + public String getAccountableId() { + return accountableId; + } + + public void setAccountableId(String accountableId) { + this.accountableId = accountableId; + } + + public Map getJobMetaproperties() { + return jobMetaproperties; + } + + public void setJobMetaproperties(Map jobMetaproperties) { + this.jobMetaproperties = jobMetaproperties; + } + + public StageModifyQuery getActiveStage() { + return activeStage; + } + + public void setActiveStage(StageModifyQuery activeStage) { + this.activeStage = activeStage; + } + + public StageModifyQuery getNextStage() { + return nextStage; + } + + public void setNextStage(StageModifyQuery nextStage) { + this.nextStage = nextStage; + } + + public StageModifyQuery getPreviousStage() { + return previousStage; + } + + public void setPreviousStage(StageModifyQuery previousStage) { + this.previousStage = previousStage; + } +} diff --git a/src/main/java/com/bynder/sdk/query/workflow/JobPresetQuery.java b/src/main/java/com/bynder/sdk/query/workflow/JobPresetQuery.java new file mode 100644 index 00000000..43368466 --- /dev/null +++ b/src/main/java/com/bynder/sdk/query/workflow/JobPresetQuery.java @@ -0,0 +1,14 @@ +package com.bynder.sdk.query.workflow; + +public class JobPresetQuery { + + private final String id; + + public JobPresetQuery(String id) { + this.id = id; + } + + public String getId() { + return id; + } +} diff --git a/src/main/java/com/bynder/sdk/query/workflow/JobQuery.java b/src/main/java/com/bynder/sdk/query/workflow/JobQuery.java new file mode 100644 index 00000000..9d12df3e --- /dev/null +++ b/src/main/java/com/bynder/sdk/query/workflow/JobQuery.java @@ -0,0 +1,167 @@ +package com.bynder.sdk.query.workflow; + +import com.bynder.sdk.model.workflow.JobStatus; +import com.bynder.sdk.query.OrderBy; +import com.bynder.sdk.query.decoder.ApiField; +import com.bynder.sdk.query.decoder.MetapropertyAttributesDecoder; + +public class JobQuery { + + private final String id; + + @ApiField + private String dateCreatedFrom; + + @ApiField + private String dateCreatedTo; + + @ApiField + private String dateModifiedFrom; + + @ApiField + private String dateModifiedTo; + + @ApiField + private String deadlineFrom; + + @ApiField + private String deadlineTo; + + @ApiField(name = "responsibleIDs", decoder = MetapropertyAttributesDecoder.class) + private String[] responsibleIss; + + @ApiField(name = "accountableIDs", decoder = MetapropertyAttributesDecoder.class) + private String[] accountableIds; + + @ApiField + private JobStatus status; + + @ApiField + private OrderBy orderBy; + + @ApiField + private Integer limit; + + @ApiField + private Integer page; + + public JobQuery() { + this.id = null; + } + + public JobQuery(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + public String getDateCreatedFrom() { + return dateCreatedFrom; + } + + public JobQuery setDateCreatedFrom(String dateCreatedFrom) { + this.dateCreatedFrom = dateCreatedFrom; + return this; + } + + public String getDateCreatedTo() { + return dateCreatedTo; + } + + public JobQuery setDateCreatedTo(String dateCreatedTo) { + this.dateCreatedTo = dateCreatedTo; + return this; + } + + public String getDateModifiedFrom() { + return dateModifiedFrom; + } + + public JobQuery setDateModifiedFrom(String dateModifiedFrom) { + this.dateModifiedFrom = dateModifiedFrom; + return this; + } + + public String getDateModifiedTo() { + return dateModifiedTo; + } + + public JobQuery setDateModifiedTo(String dateModifiedTo) { + this.dateModifiedTo = dateModifiedTo; + return this; + } + + public String getDeadlineFrom() { + return deadlineFrom; + } + + public JobQuery setDeadlineFrom(String deadlineFrom) { + this.deadlineFrom = deadlineFrom; + return this; + } + + public String getDeadlineTo() { + return deadlineTo; + } + + public JobQuery setDeadlineTo(String deadlineTo) { + this.deadlineTo = deadlineTo; + return this; + } + + public String[] getResponsibleIss() { + return responsibleIss; + } + + public JobQuery setResponsibleIss(String... responsibleIss) { + this.responsibleIss = responsibleIss; + return this; + } + + public String[] getAccountableIds() { + return accountableIds; + } + + public JobQuery setAccountableIds(String... accountableIds) { + this.accountableIds = accountableIds; + return this; + } + + public JobStatus getStatus() { + return status; + } + + public JobQuery setStatus(JobStatus status) { + this.status = status; + return this; + } + + public OrderBy getOrderBy() { + return orderBy; + } + + public JobQuery setOrderBy(OrderBy orderBy) { + this.orderBy = orderBy; + return this; + } + + public Integer getLimit() { + return limit; + } + + public JobQuery setLimit(Integer limit) { + this.limit = limit; + return this; + } + + public Integer getPage() { + return page; + } + + public JobQuery setPage(Integer page) { + this.page = page; + return this; + } +} diff --git a/src/main/java/com/bynder/sdk/query/workflow/StageCreateQuery.java b/src/main/java/com/bynder/sdk/query/workflow/StageCreateQuery.java new file mode 100644 index 00000000..67e42b6e --- /dev/null +++ b/src/main/java/com/bynder/sdk/query/workflow/StageCreateQuery.java @@ -0,0 +1,69 @@ +package com.bynder.sdk.query.workflow; + +import com.google.gson.annotations.SerializedName; + +public class StageCreateQuery { + + @SerializedName(value = "preset_stage_id") + private final String presetStageId; + + private String name; + + private String description; + + @SerializedName(value = "responsibleGroupID") + private String responsibleGroupId; + + @SerializedName(value = "responsibleID") + private String responsibleId; + + private String deadline; + + public StageCreateQuery(String presetStageId) { + this.presetStageId = presetStageId; + } + + public String getPresetStageId() { + return presetStageId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getResponsibleGroupId() { + return responsibleGroupId; + } + + public void setResponsibleGroupId(String responsibleGroupId) { + this.responsibleGroupId = responsibleGroupId; + } + + public String getResponsibleId() { + return responsibleId; + } + + public void setResponsibleId(String responsibleId) { + this.responsibleId = responsibleId; + } + + public String getDeadline() { + return deadline; + } + + public void setDeadline(String deadline) { + this.deadline = deadline; + } +} diff --git a/src/main/java/com/bynder/sdk/query/workflow/StageModifyQuery.java b/src/main/java/com/bynder/sdk/query/workflow/StageModifyQuery.java new file mode 100644 index 00000000..213a936d --- /dev/null +++ b/src/main/java/com/bynder/sdk/query/workflow/StageModifyQuery.java @@ -0,0 +1,26 @@ +package com.bynder.sdk.query.workflow; + +import com.bynder.sdk.model.workflow.StageStatus; + +public class StageModifyQuery { + + private final String id; + + private StageStatus status; + + public StageModifyQuery(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + public StageStatus getStatus() { + return status; + } + + public void setStatus(StageStatus status) { + this.status = status; + } +} diff --git a/src/main/java/com/bynder/sdk/query/workflow/WorkflowGroupDataQuery.java b/src/main/java/com/bynder/sdk/query/workflow/WorkflowGroupDataQuery.java new file mode 100644 index 00000000..fb7873af --- /dev/null +++ b/src/main/java/com/bynder/sdk/query/workflow/WorkflowGroupDataQuery.java @@ -0,0 +1,31 @@ +package com.bynder.sdk.query.workflow; + +import com.google.gson.annotations.SerializedName; + +import java.util.ArrayList; +import java.util.List; + +public class WorkflowGroupDataQuery { + + private final String name; + + @SerializedName(value = "user_ids") + private List userIds; + + public WorkflowGroupDataQuery(String name) { + this.name = name; + this.userIds = new ArrayList<>(); + } + + public String getName() { + return name; + } + + public List getUserIds() { + return userIds; + } + + public void setUserIds(List userIds) { + this.userIds = userIds; + } +} diff --git a/src/main/java/com/bynder/sdk/query/workflow/WorkflowGroupQuery.java b/src/main/java/com/bynder/sdk/query/workflow/WorkflowGroupQuery.java new file mode 100644 index 00000000..f5e4741e --- /dev/null +++ b/src/main/java/com/bynder/sdk/query/workflow/WorkflowGroupQuery.java @@ -0,0 +1,14 @@ +package com.bynder.sdk.query.workflow; + +public class WorkflowGroupQuery { + + private final String id; + + public WorkflowGroupQuery(String id) { + this.id = id; + } + + public String getGroupId() { + return id; + } +} diff --git a/src/main/java/com/bynder/sdk/query/workflow/WorkflowMetapropertyQuery.java b/src/main/java/com/bynder/sdk/query/workflow/WorkflowMetapropertyQuery.java new file mode 100644 index 00000000..adaed25e --- /dev/null +++ b/src/main/java/com/bynder/sdk/query/workflow/WorkflowMetapropertyQuery.java @@ -0,0 +1,14 @@ +package com.bynder.sdk.query.workflow; + +public class WorkflowMetapropertyQuery { + + private String id; + + public WorkflowMetapropertyQuery(String id) { + this.id = id; + } + + public String getMetapropertyId() { + return id; + } +} diff --git a/src/main/java/com/bynder/sdk/sample/AppProperties.java b/src/main/java/com/bynder/sdk/sample/AppProperties.java new file mode 100644 index 00000000..64a96620 --- /dev/null +++ b/src/main/java/com/bynder/sdk/sample/AppProperties.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ +package com.bynder.sdk.sample; + +import com.bynder.sdk.service.BynderClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +/** + * Application properties to instantiate {@link BynderClient} and run the {@link AppSample}. + */ +public final class AppProperties { + + private static final Logger LOG = LoggerFactory.getLogger(AppProperties.class); + + private final Properties appProperties = new Properties(); + + /** + * Initialises a new instance of the class by loading the content in the + * src/main/resources/app.properties file. + */ + public AppProperties() { + InputStream input = this.getClass().getClassLoader().getResourceAsStream("app.properties"); + + try { + appProperties.load(input); + } catch (IOException e) { + LOG.error(e.getMessage()); + } + } + + public String getProperty(final String key) { + return appProperties.getProperty(key); + } +} diff --git a/src/main/java/com/bynder/sdk/sample/WorkflowSample.java b/src/main/java/com/bynder/sdk/sample/WorkflowSample.java new file mode 100644 index 00000000..1487b4d5 --- /dev/null +++ b/src/main/java/com/bynder/sdk/sample/WorkflowSample.java @@ -0,0 +1,162 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ +package com.bynder.sdk.sample; + +import com.bynder.sdk.configuration.Configuration; +import com.bynder.sdk.configuration.HttpConnectionSettings; +import com.bynder.sdk.model.workflow.*; +import com.bynder.sdk.query.workflow.*; +import com.bynder.sdk.service.BynderClient; +import com.bynder.sdk.service.workflow.WorkflowService; +import com.google.gson.GsonBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import retrofit2.Response; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * Sample class to display some of the SDK functionality. + */ +public class WorkflowSample { + + private static final Logger log = LoggerFactory.getLogger(WorkflowSample.class); + + private static final String TEST_CAMPAIGN_ID = "8c05e9f0acb7467d906e5ce2793d66b8"; +// private static final String TEST_CAMPAIGN_ID_NEW = "8bbeb6b32856474597a52d6170919c65"; + + public static void main(final String[] args) throws URISyntaxException, IOException { + // Loads app.properties file under src/main/resources + AppProperties appProperties = new AppProperties(); + + // create configuration builder + HttpConnectionSettings httpConnectionSettings = new HttpConnectionSettings(); +// httpConnectionSettings.setLoggingInterceptorEnabled(true); + + Configuration.Builder configBuilder = new Configuration.Builder(new URL(appProperties.getProperty("BASE_URL"))); + configBuilder.setPermanentToken(appProperties.getProperty("PERMANENT_TOKEN")); + configBuilder.setHttpConnectionSettings(httpConnectionSettings); + + // Initialize BynderClient with a permanent token + BynderClient client = BynderClient.Builder.create(configBuilder.build()); + + // Get workflow service + WorkflowService workflowService = client.getWorkflowService(); + + // Call the API +// Response> response = workflowService.getAllCampaigns().blockingSingle(); + + CampaignQuery campaignQuery = new CampaignQuery(TEST_CAMPAIGN_ID); + Response response = workflowService.getCampaign(campaignQuery).blockingSingle(); + +// CampaignDataQuery campaignDataQuery = new CampaignDataQuery("Test Campaign via API", "APIT1", +// "329e7b02-1aa9-4fab-9d59-fa69c70d33ca"); +// campaignDataQuery.setDescription("Test via API"); +// Response response = workflowService.createCampaign(campaignDataQuery).blockingSingle(); + +// Response response = null; +// CampaignQuery campaignQuery = new CampaignQuery(TEST_CAMPAIGN_ID_NEW); +// Response responseGet = workflowService.getCampaign(campaignQuery).blockingSingle(); +// if (responseGet.isSuccessful()) { +// assert responseGet.body() != null; +// +// CampaignDataQuery campaignDataQuery = new CampaignDataQuery(responseGet.body().getName(), +// responseGet.body().getKey(), responseGet.body().getResponsibleId()); +// campaignDataQuery.setDescription(responseGet.body().getDescription() + " MODIFIED"); +// Map campaignMetaproperties = responseGet.body().getCampaignMetaproperties(); +// campaignMetaproperties.put("4fbe87e1d2c0431388515ff39ce827b8", "6B6BECC6-92EA-4295-AD14A09D0F21D3C2"); +// campaignDataQuery.setCampaignMetaproperties(campaignMetaproperties); +// response = workflowService.updateCampaign(campaignQuery, campaignDataQuery).blockingSingle(); +// } + +// CampaignQuery campaignQuery = new CampaignQuery(TEST_CAMPAIGN_ID_NEW); +// Response response = workflowService.deleteCampaign(campaignQuery).blockingSingle(); + +// Response> response = workflowService.getAllWorkflowMetaproperties().blockingSingle(); + +// WorkflowMetapropertyQuery workflowMetapropertyQuery = new WorkflowMetapropertyQuery("f1ee794c-363f-44f8-ae56-8f6e18460a31"); +// Response response = workflowService.getWorkflowMetaproperty(workflowMetapropertyQuery).blockingSingle(); + +// Response> response = workflowService.getAllWorkflowUsers().blockingSingle(); + +// Response> response = workflowService.getAllWorkflowGroups().blockingSingle(); + +// WorkflowGroupQuery workflowGroupQuery = new WorkflowGroupQuery("59344c68-345b-4cb9-b4b8-afbf4a134fe2"); +// Response response = workflowService.getWorkflowGroup(workflowGroupQuery).blockingSingle(); + +// WorkflowGroupDataQuery workflowGroupDataQuery = new WorkflowGroupDataQuery("Test API SDK"); +// Response response = workflowService.createWorkflowGroup(workflowGroupDataQuery).blockingSingle(); + +// WorkflowGroupQuery workflowGroupQuery = new WorkflowGroupQuery("176b8fa9-77e5-487b-9f4f-acc9ff4408c3"); +// WorkflowGroupDataQuery workflowGroupDataQuery = new WorkflowGroupDataQuery("Test API SDK"); +// List groupUserIds = new ArrayList<>(); +// groupUserIds.add("da8cf14e-b733-4615-a1c5-66565263ff3b"); +// groupUserIds.add("ffaf572b-6c8c-40e1-8659-764046a680bc"); +// workflowGroupDataQuery.setUserIds(groupUserIds); +// Response response = workflowService.updateWorkflowGroup(workflowGroupQuery, workflowGroupDataQuery).blockingSingle(); + +// WorkflowGroupQuery workflowGroupQuery = new WorkflowGroupQuery("176b8fa9-77e5-487b-9f4f-acc9ff4408c3"); +// Response response = workflowService.deleteWorkflowGroup(workflowGroupQuery).blockingSingle(); + + if (response != null) { + log.info(new GsonBuilder().setPrettyPrinting().create().toJson(response.body())); + if (response.isSuccessful()) { + assert response.body() != null; + +// for (Campaign campaign : response.body()) { +// log.info("id={}. name={}", campaign.getId(), campaign.getName()); +// } + + Campaign campaign = response.body(); + log.info("id={}, key={}, name={}", campaign.getId(), campaign.getKey(), campaign.getName()); + +// CampaignId campaignId = response.body(); +// log.info("id={}", campaignId.getId()); + +// for (WorkflowMetaproperty workflowMetaproperty : response.body()) { +// log.info("id={}, entity={}. type={}. label={}", workflowMetaproperty.getId(), +// workflowMetaproperty.getEntity(), workflowMetaproperty.getType(), +// workflowMetaproperty.getLabel()); +// } + +// WorkflowMetaproperty workflowMetaproperty = response.body(); +// log.info("id={}, entity={}. type={}. label={}", workflowMetaproperty.getId(), +// workflowMetaproperty.getEntity(), workflowMetaproperty.getType(), +// workflowMetaproperty.getLabel()); + +// for (WorkflowUser workflowUser : response.body()) { +// log.info("id={}. name={}", workflowUser.getId(), workflowUser.getFullName()); +// } + +// for (WorkflowGroup group : response.body()) { +// log.info("id={},name={}", group.getId(), group.getName()); +// for (WorkflowUser user : group.getUsers()) { +// log.info("- {}", user.getFullName()); +// } +// } + +// WorkflowGroup group = response.body(); +// log.info("id={},name={}", group.getId(), group.getName()); +// for (WorkflowUser user : group.getUsers()) { +// log.info("- {}", user.getFullName()); +// } + +// WorkflowGroup group = response.body(); +// log.info("id={}", group.getId()); + } + else { + assert response.errorBody() != null; + log.error(response.errorBody().string()); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/com/bynder/sdk/service/BynderClient.java b/src/main/java/com/bynder/sdk/service/BynderClient.java index d07f85ec..6e22503b 100644 --- a/src/main/java/com/bynder/sdk/service/BynderClient.java +++ b/src/main/java/com/bynder/sdk/service/BynderClient.java @@ -12,6 +12,7 @@ import com.bynder.sdk.service.asset.AssetService; import com.bynder.sdk.service.collection.CollectionService; import com.bynder.sdk.service.oauth.OAuthService; +import com.bynder.sdk.service.workflow.WorkflowService; import io.reactivex.Observable; import retrofit2.Response; @@ -52,6 +53,8 @@ public interface BynderClient { */ Observable>> getDerivatives(); + WorkflowService getWorkflowService(); + /** * Builder class used to create a new instance of {@link BynderClient} using * {@link Configuration} as parameter. diff --git a/src/main/java/com/bynder/sdk/service/BynderClientImpl.java b/src/main/java/com/bynder/sdk/service/BynderClientImpl.java index a2d0eafe..86d6f5db 100644 --- a/src/main/java/com/bynder/sdk/service/BynderClientImpl.java +++ b/src/main/java/com/bynder/sdk/service/BynderClientImpl.java @@ -15,6 +15,7 @@ import com.bynder.sdk.service.asset.AssetService; import com.bynder.sdk.service.collection.CollectionService; import com.bynder.sdk.service.oauth.OAuthService; +import com.bynder.sdk.service.workflow.WorkflowService; import io.reactivex.Observable; import retrofit2.Response; @@ -53,6 +54,8 @@ public class BynderClientImpl implements BynderClient { */ private CollectionService collectionService; + private WorkflowService workflowService; + /** * Initialises a new instance of the class. * @@ -106,4 +109,13 @@ public CollectionService getCollectionService() { public Observable>> getDerivatives() { return bynderApi.getDerivatives(); } + + @Override + public WorkflowService getWorkflowService() { + if (workflowService == null) { + workflowService = WorkflowService.Builder.create(bynderApi, queryDecoder); + } + + return workflowService; + } } diff --git a/src/main/java/com/bynder/sdk/service/workflow/WorkflowService.java b/src/main/java/com/bynder/sdk/service/workflow/WorkflowService.java new file mode 100644 index 00000000..752f645d --- /dev/null +++ b/src/main/java/com/bynder/sdk/service/workflow/WorkflowService.java @@ -0,0 +1,68 @@ +package com.bynder.sdk.service.workflow; + +import com.bynder.sdk.api.BynderApi; +import com.bynder.sdk.model.workflow.*; +import com.bynder.sdk.query.decoder.QueryDecoder; +import com.bynder.sdk.query.workflow.*; +import io.reactivex.Observable; +import retrofit2.Response; + +import java.util.List; + +public interface WorkflowService { + + Observable>> getAllCampaigns(); + + Observable> getCampaign(CampaignQuery campaignQuery); + + Observable> createCampaign(CampaignDataQuery campaignDataQuery); + + Observable> modifyCampaign(CampaignQuery campaignQuery, CampaignDataQuery campaignDataQuery); + + Observable> deleteCampaign(CampaignQuery campaignQuery); + + Observable> getJobPreset(JobPresetQuery jobPresetQuery); + + Observable>> getJobs(JobQuery jobQuery); + + Observable>> getCampaignJobs(JobQuery jobQuery); + + Observable> getJob(JobQuery jobQuery); + + Observable>> getJobMedia(JobQuery jobQuery); + + Observable> createJob(JobCreateQuery jobCreateQuery); + + Observable> modifyJob(JobModifyQuery jobModifyQuery); + + Observable> deleteJob(JobQuery jobQuery); + + Observable>> getAllWorkflowMetaproperties(); + + Observable> getWorkflowMetaproperty(WorkflowMetapropertyQuery workflowMetapropertyQuery); + + Observable >> getAllWorkflowUsers(); + + Observable >> getAllWorkflowGroups(); + + Observable> getWorkflowGroup(WorkflowGroupQuery workflowGroupQuery); + + Observable> createWorkflowGroup(WorkflowGroupDataQuery workflowGroupDataQuery); + + Observable> updateWorkflowGroup(WorkflowGroupQuery workflowGroupQuery, WorkflowGroupDataQuery workflowGroupDataQuery); + + Observable> deleteWorkflowGroup(WorkflowGroupQuery workflowGroupQuery); + + /** + * Builder class used to create a new instance of {@link WorkflowService}. + */ + class Builder { + + private Builder() { + } + + public static WorkflowService create(final BynderApi bynderApi, final QueryDecoder queryDecoder) { + return new WorkflowServiceImpl(bynderApi, queryDecoder); + } + } +} diff --git a/src/main/java/com/bynder/sdk/service/workflow/WorkflowServiceImpl.java b/src/main/java/com/bynder/sdk/service/workflow/WorkflowServiceImpl.java new file mode 100644 index 00000000..e274ade4 --- /dev/null +++ b/src/main/java/com/bynder/sdk/service/workflow/WorkflowServiceImpl.java @@ -0,0 +1,131 @@ +package com.bynder.sdk.service.workflow; + +import com.bynder.sdk.api.BynderApi; +import com.bynder.sdk.model.workflow.*; +import com.bynder.sdk.query.decoder.QueryDecoder; +import com.bynder.sdk.query.workflow.*; +import io.reactivex.Observable; +import retrofit2.Response; + +import java.util.List; +import java.util.Map; + +public class WorkflowServiceImpl implements WorkflowService { + + private final BynderApi bynderApi; + + private final QueryDecoder queryDecoder; + + public WorkflowServiceImpl(final BynderApi bynderApi, final QueryDecoder queryDecoder) { + this.bynderApi = bynderApi; + this.queryDecoder = queryDecoder; + } + + @Override + public Observable>> getAllCampaigns() { + return bynderApi.getAllCampaigns(); + } + + @Override + public Observable> getCampaign(CampaignQuery campaignQuery) { + return bynderApi.getCampaign(campaignQuery.getCampaignId()); + } + + @Override + public Observable> createCampaign(CampaignDataQuery campaignDataQuery) { + return bynderApi.createCampaign(campaignDataQuery); + } + + @Override + public Observable> modifyCampaign(CampaignQuery campaignQuery, CampaignDataQuery campaignDataQuery) { + return bynderApi.modifyCampaign(campaignQuery.getCampaignId(), campaignDataQuery); + } + + @Override + public Observable> deleteCampaign(CampaignQuery campaignQuery) { + return bynderApi.deleteCampaign(campaignQuery.getCampaignId()); + } + + @Override + public Observable> getJobPreset(JobPresetQuery jobPresetQuery) { + return bynderApi.getJobPreset(jobPresetQuery.getId()); + } + + @Override + public Observable>> getJobs(JobQuery jobQuery) { + Map params = queryDecoder.decode(jobQuery); + return bynderApi.getJobs(params); + } + + @Override + public Observable>> getCampaignJobs(JobQuery jobQuery) { + Map params = queryDecoder.decode(jobQuery); + return bynderApi.getCampaignJobs(jobQuery.getId(), params); + } + + @Override + public Observable> getJob(JobQuery jobQuery) { + return bynderApi.getJob(jobQuery.getId()); + } + + @Override + public Observable>> getJobMedia(JobQuery jobQuery) { + return bynderApi.getJobMedia(jobQuery.getId()); + } + + @Override + public Observable> createJob(JobCreateQuery jobCreateQuery) { + return bynderApi.createJob(jobCreateQuery); + } + + @Override + public Observable> modifyJob(JobModifyQuery jobModifyQuery) { + return bynderApi.modifyJob(jobModifyQuery.getId(), jobModifyQuery); + } + + @Override + public Observable> deleteJob(JobQuery jobQuery) { + return bynderApi.deleteJob(jobQuery.getId()); + } + + @Override + public Observable>> getAllWorkflowMetaproperties() { + return bynderApi.getAllWorkflowMetaproperties(); + } + + @Override + public Observable> getWorkflowMetaproperty( + WorkflowMetapropertyQuery workflowMetapropertyQuery) { + return bynderApi.getWorkflowMetaproperty(workflowMetapropertyQuery.getMetapropertyId()); + } + + @Override + public Observable>> getAllWorkflowUsers() { + return bynderApi.getAllWorkflowUsers(); + } + + @Override + public Observable>> getAllWorkflowGroups() { + return bynderApi.getAllWorkflowGroups(); + } + + @Override + public Observable> getWorkflowGroup(WorkflowGroupQuery workflowGroupQuery) { + return bynderApi.getWorkflowGroup(workflowGroupQuery.getGroupId()); + } + + @Override + public Observable> createWorkflowGroup(WorkflowGroupDataQuery workflowGroupDataQuery) { + return bynderApi.createWorkflowGroup(workflowGroupDataQuery); + } + + @Override + public Observable> updateWorkflowGroup(WorkflowGroupQuery workflowGroupQuery, WorkflowGroupDataQuery workflowGroupDataQuery) { + return bynderApi.updateWorkflowGroup(workflowGroupQuery.getGroupId(), workflowGroupDataQuery); + } + + @Override + public Observable> deleteWorkflowGroup(WorkflowGroupQuery workflowGroupQuery) { + return bynderApi.deleteWorkflowGroup(workflowGroupQuery.getGroupId()); + } +} diff --git a/src/test/java/com/bynder/sdk/service/BynderClientTest.java b/src/test/java/com/bynder/sdk/service/BynderClientTest.java index 13377594..cc22f82c 100644 --- a/src/test/java/com/bynder/sdk/service/BynderClientTest.java +++ b/src/test/java/com/bynder/sdk/service/BynderClientTest.java @@ -48,5 +48,6 @@ public void buildAndGetServicesBynderClient() { assertNotNull(bynderClient.getOAuthService()); assertNotNull(bynderClient.getAssetService()); assertNotNull(bynderClient.getCollectionService()); + assertNotNull(bynderClient.getWorkflowService()); } } diff --git a/src/test/java/com/bynder/sdk/service/workflow/WorkflowServiceImplTest.java b/src/test/java/com/bynder/sdk/service/workflow/WorkflowServiceImplTest.java new file mode 100644 index 00000000..864ad8b8 --- /dev/null +++ b/src/test/java/com/bynder/sdk/service/workflow/WorkflowServiceImplTest.java @@ -0,0 +1,199 @@ +package com.bynder.sdk.service.workflow; + +import com.bynder.sdk.api.BynderApi; +import com.bynder.sdk.query.decoder.QueryDecoder; +import com.bynder.sdk.query.workflow.*; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import static org.mockito.ArgumentMatchers.anyMap; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + +public class WorkflowServiceImplTest { + + public static String EMPTY_STRING = ""; + + @Mock + private QueryDecoder queryDecoder; + @Mock + private BynderApi bynderApi; + private WorkflowService workflowService; + + @Before + public void setUp() { + MockitoAnnotations.openMocks(this); + workflowService = WorkflowService.Builder.create(bynderApi, queryDecoder); + } + + @Test + public void getAllCampaigns() { + workflowService.getAllCampaigns(); + + verify(bynderApi, times(1)).getAllCampaigns(); + } + + @Test + public void getCampaign() { + CampaignQuery campaignQuery = new CampaignQuery(EMPTY_STRING); + workflowService.getCampaign(campaignQuery); + + verify(bynderApi, times(1)).getCampaign(anyString()); + } + + @Test + public void createCampaign() { + CampaignDataQuery campaignDataQuery = new CampaignDataQuery(EMPTY_STRING, EMPTY_STRING, EMPTY_STRING); + workflowService.createCampaign(campaignDataQuery); + + verify(bynderApi, times(1)).createCampaign(campaignDataQuery); + } + + @Test + public void updateCampaign() { + CampaignQuery campaignQuery = new CampaignQuery(EMPTY_STRING); + CampaignDataQuery campaignDataQuery = new CampaignDataQuery(EMPTY_STRING, EMPTY_STRING, EMPTY_STRING); + workflowService.modifyCampaign(campaignQuery, campaignDataQuery); + + verify(bynderApi, times(1)).modifyCampaign(EMPTY_STRING, campaignDataQuery); + } + + @Test + public void deleteCampaign() { + CampaignQuery campaignQuery = new CampaignQuery(EMPTY_STRING); + workflowService.deleteCampaign(campaignQuery); + + verify(bynderApi, times(1)).deleteCampaign(anyString()); + } + + @Test + public void getJobPreset() { + JobPresetQuery jobPresetQuery = new JobPresetQuery(EMPTY_STRING); + workflowService.getJobPreset(jobPresetQuery); + + verify(bynderApi, times(1)).getJobPreset(anyString()); + } + + @Test + public void getJobs() { + JobQuery jobQuery = new JobQuery(); + workflowService.getJobs(jobQuery); + + verify(bynderApi, times(1)).getJobs(anyMap()); + verify(queryDecoder, times(1)).decode(jobQuery); + } + + @Test + public void getCampaignJobs() { + JobQuery jobQuery = new JobQuery(EMPTY_STRING); + workflowService.getCampaignJobs(jobQuery); + + verify(bynderApi, times(1)).getCampaignJobs(anyString(), anyMap()); + verify(queryDecoder, times(1)).decode(jobQuery); + } + + @Test + public void getJob() { + JobQuery jobQuery = new JobQuery(EMPTY_STRING); + workflowService.getJob(jobQuery); + + verify(bynderApi, times(1)).getJob(anyString()); + } + + @Test + public void getJobMedia() { + JobQuery jobQuery = new JobQuery(EMPTY_STRING); + workflowService.getJobMedia(jobQuery); + + verify(bynderApi, times(1)).getJobMedia(anyString()); + } + + @Test + public void createJob() { + JobCreateQuery jobCreateQuery = new JobCreateQuery(EMPTY_STRING, EMPTY_STRING, EMPTY_STRING, EMPTY_STRING); + workflowService.createJob(jobCreateQuery); + + verify(bynderApi, times(1)).createJob(jobCreateQuery); + } + + @Test + public void modifyJob() { + JobModifyQuery jobModifyQuery = new JobModifyQuery(EMPTY_STRING); + workflowService.modifyJob(jobModifyQuery); + + verify(bynderApi, times(1)).modifyJob(EMPTY_STRING, jobModifyQuery); + } + + @Test + public void deleteJob() { + JobQuery jobQuery = new JobQuery(EMPTY_STRING); + workflowService.deleteJob(jobQuery); + + verify(bynderApi, times(1)).deleteJob(EMPTY_STRING); + } + + @Test + public void getAllWorkflowMetaproperties() { + workflowService.getAllWorkflowMetaproperties(); + + verify(bynderApi, times(1)).getAllWorkflowMetaproperties(); + } + + @Test + public void getWorkflowMetaproperty() { + WorkflowMetapropertyQuery workflowMetapropertyQuery = new WorkflowMetapropertyQuery(EMPTY_STRING); + workflowService.getWorkflowMetaproperty(workflowMetapropertyQuery); + + verify(bynderApi, times(1)).getWorkflowMetaproperty(anyString()); + } + + @Test + public void getAllWorkflowUsers() { + workflowService.getAllWorkflowUsers(); + + verify(bynderApi, times(1)).getAllWorkflowUsers(); + } + + @Test + public void getAllWorkflowGroups() { + workflowService.getAllWorkflowGroups(); + + verify(bynderApi, times(1)).getAllWorkflowGroups(); + } + + @Test + public void getWorkflowGroup() { + WorkflowGroupQuery workflowGroupQuery = new WorkflowGroupQuery(EMPTY_STRING); + workflowService.getWorkflowGroup(workflowGroupQuery); + + verify(bynderApi, times(1)).getWorkflowGroup(anyString()); + } + + @Test + public void createWorkflowGroup() { + WorkflowGroupDataQuery workflowGroupDataQuery = new WorkflowGroupDataQuery(EMPTY_STRING); + workflowService.createWorkflowGroup(workflowGroupDataQuery); + + verify(bynderApi, times(1)).createWorkflowGroup(workflowGroupDataQuery); + } + + @Test + public void updateWorkflowGroup() { + WorkflowGroupQuery workflowGroupQuery = new WorkflowGroupQuery(EMPTY_STRING); + WorkflowGroupDataQuery workflowGroupDataQuery = new WorkflowGroupDataQuery(EMPTY_STRING); + workflowService.updateWorkflowGroup(workflowGroupQuery, workflowGroupDataQuery); + + verify(bynderApi, times(1)).updateWorkflowGroup(EMPTY_STRING, workflowGroupDataQuery); + } + + @Test + public void deleteWorkflowGroup() { + WorkflowGroupQuery workflowGroupQuery = new WorkflowGroupQuery(EMPTY_STRING); + workflowService.deleteWorkflowGroup(workflowGroupQuery); + + verify(bynderApi, times(1)).deleteWorkflowGroup(anyString()); + } +} From c50bc0b6ae71e6b97349c5bd53981d0aad22c5ef Mon Sep 17 00:00:00 2001 From: Alfredo Navarro Date: Sat, 7 Jan 2023 21:08:23 +0100 Subject: [PATCH 3/6] Final workflow implementation, tested and ready --- .../java/com/bynder/sdk/api/BynderApi.java | 2 +- .../bynder/sdk/model/workflow/Campaign.java | 6 + .../bynder/sdk/model/workflow/CampaignId.java | 6 + .../com/bynder/sdk/model/workflow/Job.java | 6 + .../sdk/model/workflow/JobActionResponse.java | 21 +++ .../bynder/sdk/model/workflow/JobMedia.java | 6 + .../sdk/model/workflow/JobMediaPreview.java | 6 + .../bynder/sdk/model/workflow/JobPreset.java | 7 + .../model/workflow/JobPresetContainer.java | 16 ++ .../com/bynder/sdk/model/workflow/Stage.java | 10 +- .../sdk/model/workflow/StagePreset.java | 10 +- .../WorkflowAssetbankMetaproperty.java | 6 + .../sdk/model/workflow/WorkflowGroup.java | 6 + .../model/workflow/WorkflowMetaproperty.java | 6 + .../workflow/WorkflowMetapropertyOption.java | 6 + .../sdk/model/workflow/WorkflowUser.java | 6 + .../sdk/query/workflow/CampaignDataQuery.java | 6 + .../sdk/query/workflow/CampaignQuery.java | 6 + .../sdk/query/workflow/JobCreateQuery.java | 6 + .../sdk/query/workflow/JobModifyQuery.java | 6 + .../sdk/query/workflow/JobPresetQuery.java | 6 + .../bynder/sdk/query/workflow/JobQuery.java | 22 ++- .../sdk/query/workflow/StageCreateQuery.java | 6 + .../sdk/query/workflow/StageModifyQuery.java | 6 + .../workflow/WorkflowGroupDataQuery.java | 6 + .../query/workflow/WorkflowGroupQuery.java | 6 + .../workflow/WorkflowMetapropertyQuery.java | 6 + .../com/bynder/sdk/sample/WorkflowSample.java | 162 ------------------ .../sdk/service/workflow/WorkflowService.java | 8 +- .../service/workflow/WorkflowServiceImpl.java | 8 +- 30 files changed, 209 insertions(+), 177 deletions(-) create mode 100644 src/main/java/com/bynder/sdk/model/workflow/JobPresetContainer.java delete mode 100644 src/main/java/com/bynder/sdk/sample/WorkflowSample.java diff --git a/src/main/java/com/bynder/sdk/api/BynderApi.java b/src/main/java/com/bynder/sdk/api/BynderApi.java index 0f812af9..0169d94d 100644 --- a/src/main/java/com/bynder/sdk/api/BynderApi.java +++ b/src/main/java/com/bynder/sdk/api/BynderApi.java @@ -310,7 +310,7 @@ Observable> shareCollection(@Path("id") String collectionId, Observable> deleteCampaign(@Path("id") String campaignId); @GET("/api/workflow/presets/job/{id}/") - Observable> getJobPreset(@Path("id") String jobPresetId); + Observable> getJobPreset(@Path("id") String jobPresetId); @GET("/api/workflow/jobs/") Observable>> getJobs(@QueryMap Map params); diff --git a/src/main/java/com/bynder/sdk/model/workflow/Campaign.java b/src/main/java/com/bynder/sdk/model/workflow/Campaign.java index 2821dcac..05d0865b 100644 --- a/src/main/java/com/bynder/sdk/model/workflow/Campaign.java +++ b/src/main/java/com/bynder/sdk/model/workflow/Campaign.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.model.workflow; import com.google.gson.annotations.SerializedName; diff --git a/src/main/java/com/bynder/sdk/model/workflow/CampaignId.java b/src/main/java/com/bynder/sdk/model/workflow/CampaignId.java index 98076617..98a4fbeb 100644 --- a/src/main/java/com/bynder/sdk/model/workflow/CampaignId.java +++ b/src/main/java/com/bynder/sdk/model/workflow/CampaignId.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.model.workflow; public class CampaignId { diff --git a/src/main/java/com/bynder/sdk/model/workflow/Job.java b/src/main/java/com/bynder/sdk/model/workflow/Job.java index 8b4ddaf7..60978d71 100644 --- a/src/main/java/com/bynder/sdk/model/workflow/Job.java +++ b/src/main/java/com/bynder/sdk/model/workflow/Job.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.model.workflow; import com.google.gson.annotations.SerializedName; diff --git a/src/main/java/com/bynder/sdk/model/workflow/JobActionResponse.java b/src/main/java/com/bynder/sdk/model/workflow/JobActionResponse.java index 6a032565..ee701755 100644 --- a/src/main/java/com/bynder/sdk/model/workflow/JobActionResponse.java +++ b/src/main/java/com/bynder/sdk/model/workflow/JobActionResponse.java @@ -1,4 +1,25 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.model.workflow; +import com.google.gson.annotations.SerializedName; + public class JobActionResponse { + + @SerializedName(value = "job_id") + private String id; + + private String status; + + public String getId() { + return id; + } + + public String getStatus() { + return status; + } } diff --git a/src/main/java/com/bynder/sdk/model/workflow/JobMedia.java b/src/main/java/com/bynder/sdk/model/workflow/JobMedia.java index 63049099..3179ebd4 100644 --- a/src/main/java/com/bynder/sdk/model/workflow/JobMedia.java +++ b/src/main/java/com/bynder/sdk/model/workflow/JobMedia.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.model.workflow; import com.google.gson.annotations.SerializedName; diff --git a/src/main/java/com/bynder/sdk/model/workflow/JobMediaPreview.java b/src/main/java/com/bynder/sdk/model/workflow/JobMediaPreview.java index 1adc8439..e7726ac4 100644 --- a/src/main/java/com/bynder/sdk/model/workflow/JobMediaPreview.java +++ b/src/main/java/com/bynder/sdk/model/workflow/JobMediaPreview.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.model.workflow; public class JobMediaPreview { diff --git a/src/main/java/com/bynder/sdk/model/workflow/JobPreset.java b/src/main/java/com/bynder/sdk/model/workflow/JobPreset.java index 5d935dd7..ace2fa18 100644 --- a/src/main/java/com/bynder/sdk/model/workflow/JobPreset.java +++ b/src/main/java/com/bynder/sdk/model/workflow/JobPreset.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2017 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.model.workflow; import com.google.gson.annotations.SerializedName; @@ -11,6 +17,7 @@ public class JobPreset { private String name; + @SerializedName(value = "presetstages") private List stages; public String getId() { diff --git a/src/main/java/com/bynder/sdk/model/workflow/JobPresetContainer.java b/src/main/java/com/bynder/sdk/model/workflow/JobPresetContainer.java new file mode 100644 index 00000000..a0a2f5a5 --- /dev/null +++ b/src/main/java/com/bynder/sdk/model/workflow/JobPresetContainer.java @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2017 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ +package com.bynder.sdk.model.workflow; + +public class JobPresetContainer { + + private JobPreset preset; + + public JobPreset getPreset() { + return preset; + } +} diff --git a/src/main/java/com/bynder/sdk/model/workflow/Stage.java b/src/main/java/com/bynder/sdk/model/workflow/Stage.java index fc5546ea..ed366079 100644 --- a/src/main/java/com/bynder/sdk/model/workflow/Stage.java +++ b/src/main/java/com/bynder/sdk/model/workflow/Stage.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2017 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.model.workflow; import com.google.gson.annotations.SerializedName; @@ -8,7 +14,7 @@ public class Stage { private String status; - private int position; + private Integer position; private WorkflowUser responsibleUser; @@ -23,7 +29,7 @@ public String getStatus() { return status; } - public int getPosition() { + public Integer getPosition() { return position; } diff --git a/src/main/java/com/bynder/sdk/model/workflow/StagePreset.java b/src/main/java/com/bynder/sdk/model/workflow/StagePreset.java index f4aee35c..9c455dcd 100644 --- a/src/main/java/com/bynder/sdk/model/workflow/StagePreset.java +++ b/src/main/java/com/bynder/sdk/model/workflow/StagePreset.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2017 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.model.workflow; import com.google.gson.annotations.SerializedName; @@ -13,7 +19,7 @@ public class StagePreset { private String description; - private int position; + private Integer position; @SerializedName(value = "responsibleID") private String responsibleId; @@ -42,7 +48,7 @@ public String getDescription() { return description; } - public int getPosition() { + public Integer getPosition() { return position; } diff --git a/src/main/java/com/bynder/sdk/model/workflow/WorkflowAssetbankMetaproperty.java b/src/main/java/com/bynder/sdk/model/workflow/WorkflowAssetbankMetaproperty.java index 60b378cd..f20b69f7 100644 --- a/src/main/java/com/bynder/sdk/model/workflow/WorkflowAssetbankMetaproperty.java +++ b/src/main/java/com/bynder/sdk/model/workflow/WorkflowAssetbankMetaproperty.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2017 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.model.workflow; import com.google.gson.annotations.SerializedName; diff --git a/src/main/java/com/bynder/sdk/model/workflow/WorkflowGroup.java b/src/main/java/com/bynder/sdk/model/workflow/WorkflowGroup.java index 41c469f2..b69581c1 100644 --- a/src/main/java/com/bynder/sdk/model/workflow/WorkflowGroup.java +++ b/src/main/java/com/bynder/sdk/model/workflow/WorkflowGroup.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2017 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.model.workflow; import com.google.gson.annotations.SerializedName; diff --git a/src/main/java/com/bynder/sdk/model/workflow/WorkflowMetaproperty.java b/src/main/java/com/bynder/sdk/model/workflow/WorkflowMetaproperty.java index 0de8a764..dad84957 100644 --- a/src/main/java/com/bynder/sdk/model/workflow/WorkflowMetaproperty.java +++ b/src/main/java/com/bynder/sdk/model/workflow/WorkflowMetaproperty.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2017 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.model.workflow; import com.google.gson.annotations.SerializedName; diff --git a/src/main/java/com/bynder/sdk/model/workflow/WorkflowMetapropertyOption.java b/src/main/java/com/bynder/sdk/model/workflow/WorkflowMetapropertyOption.java index f1aac083..b2d582b6 100644 --- a/src/main/java/com/bynder/sdk/model/workflow/WorkflowMetapropertyOption.java +++ b/src/main/java/com/bynder/sdk/model/workflow/WorkflowMetapropertyOption.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2017 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.model.workflow; import com.google.gson.annotations.SerializedName; diff --git a/src/main/java/com/bynder/sdk/model/workflow/WorkflowUser.java b/src/main/java/com/bynder/sdk/model/workflow/WorkflowUser.java index 0c83168b..eec2e7a0 100644 --- a/src/main/java/com/bynder/sdk/model/workflow/WorkflowUser.java +++ b/src/main/java/com/bynder/sdk/model/workflow/WorkflowUser.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2017 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.model.workflow; import com.bynder.sdk.model.User; diff --git a/src/main/java/com/bynder/sdk/query/workflow/CampaignDataQuery.java b/src/main/java/com/bynder/sdk/query/workflow/CampaignDataQuery.java index 22e5973f..d84a293f 100644 --- a/src/main/java/com/bynder/sdk/query/workflow/CampaignDataQuery.java +++ b/src/main/java/com/bynder/sdk/query/workflow/CampaignDataQuery.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.query.workflow; import com.google.gson.annotations.SerializedName; diff --git a/src/main/java/com/bynder/sdk/query/workflow/CampaignQuery.java b/src/main/java/com/bynder/sdk/query/workflow/CampaignQuery.java index 39e0599c..40ae608a 100644 --- a/src/main/java/com/bynder/sdk/query/workflow/CampaignQuery.java +++ b/src/main/java/com/bynder/sdk/query/workflow/CampaignQuery.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.query.workflow; public class CampaignQuery { diff --git a/src/main/java/com/bynder/sdk/query/workflow/JobCreateQuery.java b/src/main/java/com/bynder/sdk/query/workflow/JobCreateQuery.java index 24737edc..ad51259b 100644 --- a/src/main/java/com/bynder/sdk/query/workflow/JobCreateQuery.java +++ b/src/main/java/com/bynder/sdk/query/workflow/JobCreateQuery.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.query.workflow; import com.google.gson.annotations.SerializedName; diff --git a/src/main/java/com/bynder/sdk/query/workflow/JobModifyQuery.java b/src/main/java/com/bynder/sdk/query/workflow/JobModifyQuery.java index 6a8ece26..447675e8 100644 --- a/src/main/java/com/bynder/sdk/query/workflow/JobModifyQuery.java +++ b/src/main/java/com/bynder/sdk/query/workflow/JobModifyQuery.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.query.workflow; import com.google.gson.annotations.SerializedName; diff --git a/src/main/java/com/bynder/sdk/query/workflow/JobPresetQuery.java b/src/main/java/com/bynder/sdk/query/workflow/JobPresetQuery.java index 43368466..23ae83fc 100644 --- a/src/main/java/com/bynder/sdk/query/workflow/JobPresetQuery.java +++ b/src/main/java/com/bynder/sdk/query/workflow/JobPresetQuery.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.query.workflow; public class JobPresetQuery { diff --git a/src/main/java/com/bynder/sdk/query/workflow/JobQuery.java b/src/main/java/com/bynder/sdk/query/workflow/JobQuery.java index 9d12df3e..d21f0da6 100644 --- a/src/main/java/com/bynder/sdk/query/workflow/JobQuery.java +++ b/src/main/java/com/bynder/sdk/query/workflow/JobQuery.java @@ -1,9 +1,15 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.query.workflow; import com.bynder.sdk.model.workflow.JobStatus; import com.bynder.sdk.query.OrderBy; import com.bynder.sdk.query.decoder.ApiField; -import com.bynder.sdk.query.decoder.MetapropertyAttributesDecoder; +import com.bynder.sdk.query.decoder.StringArrayParameterDecoder; public class JobQuery { @@ -27,10 +33,10 @@ public class JobQuery { @ApiField private String deadlineTo; - @ApiField(name = "responsibleIDs", decoder = MetapropertyAttributesDecoder.class) - private String[] responsibleIss; + @ApiField(name = "responsibleIDs", decoder = StringArrayParameterDecoder.class) + private String[] responsibleIds; - @ApiField(name = "accountableIDs", decoder = MetapropertyAttributesDecoder.class) + @ApiField(name = "accountableIDs", decoder = StringArrayParameterDecoder.class) private String[] accountableIds; @ApiField @@ -111,12 +117,12 @@ public JobQuery setDeadlineTo(String deadlineTo) { return this; } - public String[] getResponsibleIss() { - return responsibleIss; + public String[] getResponsibleIds() { + return responsibleIds; } - public JobQuery setResponsibleIss(String... responsibleIss) { - this.responsibleIss = responsibleIss; + public JobQuery setResponsibleIds(String... responsibleIds) { + this.responsibleIds = responsibleIds; return this; } diff --git a/src/main/java/com/bynder/sdk/query/workflow/StageCreateQuery.java b/src/main/java/com/bynder/sdk/query/workflow/StageCreateQuery.java index 67e42b6e..d099789f 100644 --- a/src/main/java/com/bynder/sdk/query/workflow/StageCreateQuery.java +++ b/src/main/java/com/bynder/sdk/query/workflow/StageCreateQuery.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.query.workflow; import com.google.gson.annotations.SerializedName; diff --git a/src/main/java/com/bynder/sdk/query/workflow/StageModifyQuery.java b/src/main/java/com/bynder/sdk/query/workflow/StageModifyQuery.java index 213a936d..6381a3f0 100644 --- a/src/main/java/com/bynder/sdk/query/workflow/StageModifyQuery.java +++ b/src/main/java/com/bynder/sdk/query/workflow/StageModifyQuery.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.query.workflow; import com.bynder.sdk.model.workflow.StageStatus; diff --git a/src/main/java/com/bynder/sdk/query/workflow/WorkflowGroupDataQuery.java b/src/main/java/com/bynder/sdk/query/workflow/WorkflowGroupDataQuery.java index fb7873af..d2e2c214 100644 --- a/src/main/java/com/bynder/sdk/query/workflow/WorkflowGroupDataQuery.java +++ b/src/main/java/com/bynder/sdk/query/workflow/WorkflowGroupDataQuery.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.query.workflow; import com.google.gson.annotations.SerializedName; diff --git a/src/main/java/com/bynder/sdk/query/workflow/WorkflowGroupQuery.java b/src/main/java/com/bynder/sdk/query/workflow/WorkflowGroupQuery.java index f5e4741e..1a29b5af 100644 --- a/src/main/java/com/bynder/sdk/query/workflow/WorkflowGroupQuery.java +++ b/src/main/java/com/bynder/sdk/query/workflow/WorkflowGroupQuery.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.query.workflow; public class WorkflowGroupQuery { diff --git a/src/main/java/com/bynder/sdk/query/workflow/WorkflowMetapropertyQuery.java b/src/main/java/com/bynder/sdk/query/workflow/WorkflowMetapropertyQuery.java index adaed25e..cb48d8c6 100644 --- a/src/main/java/com/bynder/sdk/query/workflow/WorkflowMetapropertyQuery.java +++ b/src/main/java/com/bynder/sdk/query/workflow/WorkflowMetapropertyQuery.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.query.workflow; public class WorkflowMetapropertyQuery { diff --git a/src/main/java/com/bynder/sdk/sample/WorkflowSample.java b/src/main/java/com/bynder/sdk/sample/WorkflowSample.java deleted file mode 100644 index 1487b4d5..00000000 --- a/src/main/java/com/bynder/sdk/sample/WorkflowSample.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright (c) 2019 Bynder B.V. All rights reserved. - * - * Licensed under the MIT License. See LICENSE file in the project root for full license - * information. - */ -package com.bynder.sdk.sample; - -import com.bynder.sdk.configuration.Configuration; -import com.bynder.sdk.configuration.HttpConnectionSettings; -import com.bynder.sdk.model.workflow.*; -import com.bynder.sdk.query.workflow.*; -import com.bynder.sdk.service.BynderClient; -import com.bynder.sdk.service.workflow.WorkflowService; -import com.google.gson.GsonBuilder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import retrofit2.Response; - -import java.io.IOException; -import java.net.URISyntaxException; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -/** - * Sample class to display some of the SDK functionality. - */ -public class WorkflowSample { - - private static final Logger log = LoggerFactory.getLogger(WorkflowSample.class); - - private static final String TEST_CAMPAIGN_ID = "8c05e9f0acb7467d906e5ce2793d66b8"; -// private static final String TEST_CAMPAIGN_ID_NEW = "8bbeb6b32856474597a52d6170919c65"; - - public static void main(final String[] args) throws URISyntaxException, IOException { - // Loads app.properties file under src/main/resources - AppProperties appProperties = new AppProperties(); - - // create configuration builder - HttpConnectionSettings httpConnectionSettings = new HttpConnectionSettings(); -// httpConnectionSettings.setLoggingInterceptorEnabled(true); - - Configuration.Builder configBuilder = new Configuration.Builder(new URL(appProperties.getProperty("BASE_URL"))); - configBuilder.setPermanentToken(appProperties.getProperty("PERMANENT_TOKEN")); - configBuilder.setHttpConnectionSettings(httpConnectionSettings); - - // Initialize BynderClient with a permanent token - BynderClient client = BynderClient.Builder.create(configBuilder.build()); - - // Get workflow service - WorkflowService workflowService = client.getWorkflowService(); - - // Call the API -// Response> response = workflowService.getAllCampaigns().blockingSingle(); - - CampaignQuery campaignQuery = new CampaignQuery(TEST_CAMPAIGN_ID); - Response response = workflowService.getCampaign(campaignQuery).blockingSingle(); - -// CampaignDataQuery campaignDataQuery = new CampaignDataQuery("Test Campaign via API", "APIT1", -// "329e7b02-1aa9-4fab-9d59-fa69c70d33ca"); -// campaignDataQuery.setDescription("Test via API"); -// Response response = workflowService.createCampaign(campaignDataQuery).blockingSingle(); - -// Response response = null; -// CampaignQuery campaignQuery = new CampaignQuery(TEST_CAMPAIGN_ID_NEW); -// Response responseGet = workflowService.getCampaign(campaignQuery).blockingSingle(); -// if (responseGet.isSuccessful()) { -// assert responseGet.body() != null; -// -// CampaignDataQuery campaignDataQuery = new CampaignDataQuery(responseGet.body().getName(), -// responseGet.body().getKey(), responseGet.body().getResponsibleId()); -// campaignDataQuery.setDescription(responseGet.body().getDescription() + " MODIFIED"); -// Map campaignMetaproperties = responseGet.body().getCampaignMetaproperties(); -// campaignMetaproperties.put("4fbe87e1d2c0431388515ff39ce827b8", "6B6BECC6-92EA-4295-AD14A09D0F21D3C2"); -// campaignDataQuery.setCampaignMetaproperties(campaignMetaproperties); -// response = workflowService.updateCampaign(campaignQuery, campaignDataQuery).blockingSingle(); -// } - -// CampaignQuery campaignQuery = new CampaignQuery(TEST_CAMPAIGN_ID_NEW); -// Response response = workflowService.deleteCampaign(campaignQuery).blockingSingle(); - -// Response> response = workflowService.getAllWorkflowMetaproperties().blockingSingle(); - -// WorkflowMetapropertyQuery workflowMetapropertyQuery = new WorkflowMetapropertyQuery("f1ee794c-363f-44f8-ae56-8f6e18460a31"); -// Response response = workflowService.getWorkflowMetaproperty(workflowMetapropertyQuery).blockingSingle(); - -// Response> response = workflowService.getAllWorkflowUsers().blockingSingle(); - -// Response> response = workflowService.getAllWorkflowGroups().blockingSingle(); - -// WorkflowGroupQuery workflowGroupQuery = new WorkflowGroupQuery("59344c68-345b-4cb9-b4b8-afbf4a134fe2"); -// Response response = workflowService.getWorkflowGroup(workflowGroupQuery).blockingSingle(); - -// WorkflowGroupDataQuery workflowGroupDataQuery = new WorkflowGroupDataQuery("Test API SDK"); -// Response response = workflowService.createWorkflowGroup(workflowGroupDataQuery).blockingSingle(); - -// WorkflowGroupQuery workflowGroupQuery = new WorkflowGroupQuery("176b8fa9-77e5-487b-9f4f-acc9ff4408c3"); -// WorkflowGroupDataQuery workflowGroupDataQuery = new WorkflowGroupDataQuery("Test API SDK"); -// List groupUserIds = new ArrayList<>(); -// groupUserIds.add("da8cf14e-b733-4615-a1c5-66565263ff3b"); -// groupUserIds.add("ffaf572b-6c8c-40e1-8659-764046a680bc"); -// workflowGroupDataQuery.setUserIds(groupUserIds); -// Response response = workflowService.updateWorkflowGroup(workflowGroupQuery, workflowGroupDataQuery).blockingSingle(); - -// WorkflowGroupQuery workflowGroupQuery = new WorkflowGroupQuery("176b8fa9-77e5-487b-9f4f-acc9ff4408c3"); -// Response response = workflowService.deleteWorkflowGroup(workflowGroupQuery).blockingSingle(); - - if (response != null) { - log.info(new GsonBuilder().setPrettyPrinting().create().toJson(response.body())); - if (response.isSuccessful()) { - assert response.body() != null; - -// for (Campaign campaign : response.body()) { -// log.info("id={}. name={}", campaign.getId(), campaign.getName()); -// } - - Campaign campaign = response.body(); - log.info("id={}, key={}, name={}", campaign.getId(), campaign.getKey(), campaign.getName()); - -// CampaignId campaignId = response.body(); -// log.info("id={}", campaignId.getId()); - -// for (WorkflowMetaproperty workflowMetaproperty : response.body()) { -// log.info("id={}, entity={}. type={}. label={}", workflowMetaproperty.getId(), -// workflowMetaproperty.getEntity(), workflowMetaproperty.getType(), -// workflowMetaproperty.getLabel()); -// } - -// WorkflowMetaproperty workflowMetaproperty = response.body(); -// log.info("id={}, entity={}. type={}. label={}", workflowMetaproperty.getId(), -// workflowMetaproperty.getEntity(), workflowMetaproperty.getType(), -// workflowMetaproperty.getLabel()); - -// for (WorkflowUser workflowUser : response.body()) { -// log.info("id={}. name={}", workflowUser.getId(), workflowUser.getFullName()); -// } - -// for (WorkflowGroup group : response.body()) { -// log.info("id={},name={}", group.getId(), group.getName()); -// for (WorkflowUser user : group.getUsers()) { -// log.info("- {}", user.getFullName()); -// } -// } - -// WorkflowGroup group = response.body(); -// log.info("id={},name={}", group.getId(), group.getName()); -// for (WorkflowUser user : group.getUsers()) { -// log.info("- {}", user.getFullName()); -// } - -// WorkflowGroup group = response.body(); -// log.info("id={}", group.getId()); - } - else { - assert response.errorBody() != null; - log.error(response.errorBody().string()); - } - } - } -} \ No newline at end of file diff --git a/src/main/java/com/bynder/sdk/service/workflow/WorkflowService.java b/src/main/java/com/bynder/sdk/service/workflow/WorkflowService.java index 752f645d..da9cd4d3 100644 --- a/src/main/java/com/bynder/sdk/service/workflow/WorkflowService.java +++ b/src/main/java/com/bynder/sdk/service/workflow/WorkflowService.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.service.workflow; import com.bynder.sdk.api.BynderApi; @@ -21,7 +27,7 @@ public interface WorkflowService { Observable> deleteCampaign(CampaignQuery campaignQuery); - Observable> getJobPreset(JobPresetQuery jobPresetQuery); + Observable> getJobPreset(JobPresetQuery jobPresetQuery); Observable>> getJobs(JobQuery jobQuery); diff --git a/src/main/java/com/bynder/sdk/service/workflow/WorkflowServiceImpl.java b/src/main/java/com/bynder/sdk/service/workflow/WorkflowServiceImpl.java index e274ade4..2928ca75 100644 --- a/src/main/java/com/bynder/sdk/service/workflow/WorkflowServiceImpl.java +++ b/src/main/java/com/bynder/sdk/service/workflow/WorkflowServiceImpl.java @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019 Bynder B.V. All rights reserved. + * + * Licensed under the MIT License. See LICENSE file in the project root for full license + * information. + */ package com.bynder.sdk.service.workflow; import com.bynder.sdk.api.BynderApi; @@ -47,7 +53,7 @@ public Observable> deleteCampaign(CampaignQuery campaignQuery) { } @Override - public Observable> getJobPreset(JobPresetQuery jobPresetQuery) { + public Observable> getJobPreset(JobPresetQuery jobPresetQuery) { return bynderApi.getJobPreset(jobPresetQuery.getId()); } From 6b013379715c58cb7de603c9b09845dec79df107 Mon Sep 17 00:00:00 2001 From: Arpit Sharma <32858287+Arpit-Sharma-USC@users.noreply.github.com> Date: Wed, 25 Jan 2023 11:37:36 +0100 Subject: [PATCH 4/6] Update src/main/java/com/bynder/sdk/service/BynderClientImpl.java --- src/main/java/com/bynder/sdk/service/BynderClientImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/bynder/sdk/service/BynderClientImpl.java b/src/main/java/com/bynder/sdk/service/BynderClientImpl.java index 86d6f5db..218ee502 100644 --- a/src/main/java/com/bynder/sdk/service/BynderClientImpl.java +++ b/src/main/java/com/bynder/sdk/service/BynderClientImpl.java @@ -54,6 +54,9 @@ public class BynderClientImpl implements BynderClient { */ private CollectionService collectionService; + /** + * Instance of {@link WorkflowService}. + */ private WorkflowService workflowService; /** From e776009db2f251135374ae3bf911c431bd42aadd Mon Sep 17 00:00:00 2001 From: Arpit Sharma <32858287+Arpit-Sharma-USC@users.noreply.github.com> Date: Wed, 25 Jan 2023 11:37:44 +0100 Subject: [PATCH 5/6] Update src/main/java/com/bynder/sdk/service/BynderClient.java --- src/main/java/com/bynder/sdk/service/BynderClient.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/com/bynder/sdk/service/BynderClient.java b/src/main/java/com/bynder/sdk/service/BynderClient.java index 6e22503b..51df948d 100644 --- a/src/main/java/com/bynder/sdk/service/BynderClient.java +++ b/src/main/java/com/bynder/sdk/service/BynderClient.java @@ -53,6 +53,12 @@ public interface BynderClient { */ Observable>> getDerivatives(); + /** + * Gets an instance of the workflow service to interact with the workflows in your Bynder + * portal. + * + * @return Instance of {@link WorkflowService}. + */ WorkflowService getWorkflowService(); /** From 089138381625d8f7f3b674fbab3aa3a77027e9d0 Mon Sep 17 00:00:00 2001 From: Arpit-Sharma-USC Date: Wed, 25 Jan 2023 11:42:38 +0100 Subject: [PATCH 6/6] format WorkflowService --- .../sdk/service/workflow/WorkflowService.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/bynder/sdk/service/workflow/WorkflowService.java b/src/main/java/com/bynder/sdk/service/workflow/WorkflowService.java index da9cd4d3..a518969d 100644 --- a/src/main/java/com/bynder/sdk/service/workflow/WorkflowService.java +++ b/src/main/java/com/bynder/sdk/service/workflow/WorkflowService.java @@ -17,15 +17,15 @@ public interface WorkflowService { - Observable>> getAllCampaigns(); - + Observable>> getAllCampaigns(); + Observable> getCampaign(CampaignQuery campaignQuery); - + Observable> createCampaign(CampaignDataQuery campaignDataQuery); - - Observable> modifyCampaign(CampaignQuery campaignQuery, CampaignDataQuery campaignDataQuery); - - Observable> deleteCampaign(CampaignQuery campaignQuery); + + Observable> modifyCampaign(CampaignQuery campaignQuery, CampaignDataQuery campaignDataQuery); + + Observable> deleteCampaign(CampaignQuery campaignQuery); Observable> getJobPreset(JobPresetQuery jobPresetQuery); @@ -44,12 +44,12 @@ public interface WorkflowService { Observable> deleteJob(JobQuery jobQuery); Observable>> getAllWorkflowMetaproperties(); - - Observable> getWorkflowMetaproperty(WorkflowMetapropertyQuery workflowMetapropertyQuery); - - Observable >> getAllWorkflowUsers(); - - Observable >> getAllWorkflowGroups(); + + Observable> getWorkflowMetaproperty(WorkflowMetapropertyQuery workflowMetapropertyQuery); + + Observable>> getAllWorkflowUsers(); + + Observable>> getAllWorkflowGroups(); Observable> getWorkflowGroup(WorkflowGroupQuery workflowGroupQuery); @@ -59,7 +59,7 @@ public interface WorkflowService { Observable> deleteWorkflowGroup(WorkflowGroupQuery workflowGroupQuery); - /** + /** * Builder class used to create a new instance of {@link WorkflowService}. */ class Builder {