Skip to content

Commit

Permalink
Implementation of Workflow API (#100)
Browse files Browse the repository at this point in the history
* Removed git excl. file

* First implementation of full Workflow functionality

* Final workflow implementation, tested and ready

* Update src/main/java/com/bynder/sdk/service/BynderClientImpl.java

* Update src/main/java/com/bynder/sdk/service/BynderClient.java

* format WorkflowService

Co-authored-by: Alfredo Navarro <alfredo.navarro@redbull.com>
Co-authored-by: Arpit Sharma <32858287+Arpit-Sharma-USC@users.noreply.github.com>
Co-authored-by: Arpit-Sharma-USC <arpitshrm07@gmail.com>
  • Loading branch information
4 people committed Jan 27, 2023
1 parent 170a564 commit 7483835
Show file tree
Hide file tree
Showing 40 changed files with 2,253 additions and 28 deletions.
25 changes: 0 additions & 25 deletions .gitignore

This file was deleted.

67 changes: 67 additions & 0 deletions src/main/java/com/bynder/sdk/api/BynderApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@

import com.bynder.sdk.model.Tag;
import com.bynder.sdk.model.*;
import com.bynder.sdk.model.workflow.*;
import com.bynder.sdk.query.workflow.*;
import com.bynder.sdk.model.upload.*;

import io.reactivex.Observable;
import retrofit2.Response;
import retrofit2.http.*;
Expand Down Expand Up @@ -293,4 +296,68 @@ Observable<Response<UploadAdditionalMediaResponse>> finaliseUploadAdditional(@Pa
@FormUrlEncoded
@POST("/api/v4/media/save/")
Observable<Response<SaveMediaResponse>> saveMedia(@FieldMap Map<String, String> params);

@GET("/api/workflow/campaigns/")
Observable<Response<List<Campaign>>> getAllCampaigns();

@GET("/api/workflow/campaigns/{id}/")
Observable<Response<Campaign>> getCampaign(@Path("id") String campaignId);

@POST("/api/workflow/campaigns/")
Observable<Response<CampaignId>> createCampaign(@Body CampaignDataQuery body);

@PUT("/api/workflow/campaigns/{id}/")
Observable<Response<CampaignId>> modifyCampaign(@Path("id") String campaignId, @Body CampaignDataQuery body);

@DELETE("/api/workflow/campaigns/{id}/")
Observable<Response<Void>> deleteCampaign(@Path("id") String campaignId);

@GET("/api/workflow/presets/job/{id}/")
Observable<Response<JobPresetContainer>> getJobPreset(@Path("id") String jobPresetId);

@GET("/api/workflow/jobs/")
Observable<Response<List<Job>>> getJobs(@QueryMap Map<String, String> params);

@GET("/api/workflow/campaigns/{id}/jobs/")
Observable<Response<List<Job>>> getCampaignJobs(@Path("id") String campaignId, @QueryMap Map<String, String> params);

@GET("/api/workflow/jobs/{id}/")
Observable<Response<Job>> getJob(@Path("id") String jobId);

@GET("/api/workflow/jobs/{id}/media/")
Observable<Response<List<JobMedia>>> getJobMedia(@Path("id") String jobId);

@POST("/api/workflow/jobs/")
Observable<Response<JobActionResponse>> createJob(@Body JobCreateQuery body);

@PUT("/api/workflow/jobs/{id}/")
Observable<Response<JobActionResponse>> modifyJob(@Path("id") String jobId, @Body JobModifyQuery body);

@DELETE("/api/workflow/jobs/{id}/")
Observable<Response<Void>> deleteJob(@Path("id") String jobId);

@GET("api/workflow/metaproperties/")
Observable<Response<List<WorkflowMetaproperty>>> getAllWorkflowMetaproperties();

@GET("api/workflow/metaproperties/{id}/")
Observable<Response<WorkflowMetaproperty>> getWorkflowMetaproperty(@Path("id") String metapropertyId);

@GET("api/workflow/users/")
Observable<Response<List<WorkflowUser>>> getAllWorkflowUsers();

@GET("api/workflow/groups/")
Observable<Response<List<WorkflowGroup>>> getAllWorkflowGroups();

@GET("api/workflow/groups/{id}/")
Observable<Response<WorkflowGroup>> getWorkflowGroup(@Path("id") String groupId);

@POST("api/workflow/groups/")
Observable<Response<WorkflowGroup>> createWorkflowGroup(@Body WorkflowGroupDataQuery body);

@PUT("api/workflow/groups/{id}/")
Observable<Response<WorkflowGroup>> updateWorkflowGroup(@Path("id") String groupId,
@Body WorkflowGroupDataQuery body);

@DELETE("api/workflow/groups/{id}/")
Observable<Response<Void>> deleteWorkflowGroup(@Path("id") String groupId);
}
161 changes: 161 additions & 0 deletions src/main/java/com/bynder/sdk/model/User.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
94 changes: 94 additions & 0 deletions src/main/java/com/bynder/sdk/model/workflow/Campaign.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
/*
* 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;

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<String, String> 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<String, String> getCampaignMetaproperties() {
return campaignMetaproperties;
}

public String getResponsibleId() {
return responsibleId;
}
}
16 changes: 16 additions & 0 deletions src/main/java/com/bynder/sdk/model/workflow/CampaignId.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/*
* 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 {

private String id;

public String getId() {
return id;
}
}
Loading

0 comments on commit 7483835

Please sign in to comment.