From 25346ca763acda85ebafc268cb76bd47e3a2d777 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20L=C3=BChnen?= Date: Tue, 12 Oct 2021 21:43:48 +0200 Subject: [PATCH 01/16] Update README.md Update README.md for v0.2.0-alpha --- README.md | 110 +++++++----------------------------------------------- 1 file changed, 14 insertions(+), 96 deletions(-) diff --git a/README.md b/README.md index 1a01ae2..480ab4d 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,28 @@ # ClickUp-Java -![build version](https://img.shields.io/badge/version-0.1.0--alpha-brightgreen.svg) -![release version](https://img.shields.io/badge/release-v0.1.0--alpha-blue.svg) +![build version](https://img.shields.io/badge/version-0.2.0--alpha-brightgreen.svg) ![framework or language](https://img.shields.io/badge/Java-1.5-blue.svg) ![license](https://img.shields.io/badge/license-AGPL--3.0-lightgrey.svg) -### Current Version 0.1.0-alpha -### Development Version 0.1.0-alpha - ## About -ClickUp-Java is a library to interact with the [ClickUp](https://clickup.com/) API (ClickUp 2.0). The library is programed in Java. +ClickUp-Java is a (unofficial) library to interact with the [ClickUp](https://clickup.com/) API (ClickUp 2.0). If you have any suggestions or questions contact me or create a feature request/bug report. -##### Info: +##### Info: - English isn’t my first language, so please excuse any mistakes. - Contact me for proposals or questions. - This project uses the library [Gson](https://github.com/google/gson) for JSON interactions. ## Getting Started -1. add ClickUp-Java to your project -2. add Gson 2.4 or higher to your project + +### Download And Use +1. download last releases from [GitHub](https://github.com/SCHREDDO/ClickUp-Java/releases) +2. add ClickUp-Java to your project +3. add Gson 2.4 or higher to your project + +### Building From Source +1. clone ClickUp-Java go in the folder '\ClickUp-Java\ClickUp-Java' +2. build ClickUp-Java 'jar cvf clickup-java.jar -C src\main\java .' +3. add ClickUp-Java to your project +4. add Gson 2.4 or higher to your project ## Usage ### API Calls @@ -56,34 +61,6 @@ A list of available API calls of the ClickUp API. For more information [click he ### Examples -#### Initialize ClickUp-Java -```java -ClickUp clickUp = new ClickUp("", "", ""); -``` - -#### Initialize ClickUp-Java with API Token -```java -ClickUp clickUp = new ClickUp(""); -``` - -#### Get Tasks as JSON -```java -System.out.println(clickUp.getTasks((long) 1111111, false).json()); -``` - -#### Get Tasks as object -```java -System.out.println(((ArrayList) clickUp.getTasks((long) 1111111, false).obj()).get(0).getName()); -``` - -#### Delete Task -```java -if (clickUp.deleteTask("00a0aa")) { - System.out.println("Task deleted"); -} -``` - - ## Dependencies ### Runtime Dependencies - Java 1.5 or higher @@ -93,65 +70,6 @@ if (clickUp.deleteTask("00a0aa")) { - Gson 2.4 ## Changelog -### = 0.1.0-alpha October 21st 2019 = -#### Added -- API Call: Get Access Token -- API Call: Get Authorized User -- API Call: Get Authorized Teams -- API Call: Get Teams -- API Call: Create Space -- API Call: Update Space -- API Call: Delete Space -- API Call: Get Spaces -- API Call: Get Space -- API Call: Create Folder -- API Call: Update Folder -- API Call: Delete Folder -- API Call: Get Folders -- API Call: Get Folder -- API Call: Create List -- API Call: Create Folderless List -- API Call: Update List -- API Call: Delete List -- API Call: Get Lists -- API Call: Get Folderless Lists -- API Call: Get List -- API Call: Create Task -- API Call: Update Task -- API Call: Delete Task -- API Call: Get Tasks -- API Call: Get Task -- API Call: Get List Members -- API Call: Get Task Members -- Object: CUAttachment -- Object: CUChecklist -- Object: CUChecklistItem -- Object: CUCustomField -- Object: CUFolder -- Object: CUList -- Object: CUMember -- Object: CUSpace -- Object: CUStatus -- Object: CUTag -- Object: CUTask -- Object: CUTeam -- Object: CUWebhook -- Object: CUFeatures -- Object: CUOption -- Object: CUPriority -- Object: CUTypeConfig -- Object: CUFChecklists -- Object: CUFCheckUnresolved -- Object: CUFCustomFields -- Object: CUFDependencyWarning -- Object: CUFDueDates -- Object: CUFPortfolios -- Object: CUFPriorities -- Object: CUFRemapDependencies -- Object: CUFTags -- Object: CUFTimeEstimates -- Object: CUFTimeTracking - ## Support Possibilities - give proposals From afadb8942cff20c9c8e7c550afb218b5e487fd7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20L=C3=BChnen?= Date: Sat, 23 Apr 2022 21:52:32 +0200 Subject: [PATCH 02/16] add a abstract class for requests --- .../clickup/api/requests/ClickUpRequest.java | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/ClickUpRequest.java diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/ClickUpRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/ClickUpRequest.java new file mode 100644 index 0000000..f862259 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/ClickUpRequest.java @@ -0,0 +1,43 @@ +// Copyright (C) 2019-2022 Sebastian Lühnen +// +// +// This file is part of ClickUp-Java. +// +// ClickUp-Java is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ClickUp-Java is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with ClickUp-Java. If not, see . +// +// +// Created By: Sebastian Lühnen +// Created On: 23.04.2022 +// Last Edited On: 23.04.2022 +// Language: Java +// +package io.github.schreddo.nerdy.clickup.api.requests; + +public abstract class ClickUpRequest { + + private String accessToken; + + public String getAccessToken() { + return accessToken; + } + public void setAccessToken(String accessToken) { + this.accessToken = accessToken; + } + + public ClickUpRequest(String accessToken) { + this.setAccessToken(accessToken); + } + + public abstract Object execute(); +} From ef2c9a23f8dade1206e71ea08ba1fe1253c5517b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20L=C3=BChnen?= Date: Sat, 23 Apr 2022 21:53:32 +0200 Subject: [PATCH 03/16] add a custom field class --- .../nerdy/clickup/api/enums/Operator.java | 18 ++++ .../clickup/api/models/base/CustomField.java | 84 +++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/enums/Operator.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/base/CustomField.java diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/enums/Operator.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/enums/Operator.java new file mode 100644 index 0000000..1fde1cb --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/enums/Operator.java @@ -0,0 +1,18 @@ +package io.github.schreddo.nerdy.clickup.api.enums; + +import com.google.gson.annotations.SerializedName; + +public enum Operator { + @SerializedName("=") + EQUAL, + @SerializedName("!=") + INEQUAL, + @SerializedName(">") + GREATER_THAN, + @SerializedName(">=") + GREATER_THAN_OR_EQUAL, + @SerializedName("<") + LESSS_THAN, + @SerializedName("<=") + LESSS_THAN_OR_EQUAL; +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/base/CustomField.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/base/CustomField.java new file mode 100644 index 0000000..276a16c --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/base/CustomField.java @@ -0,0 +1,84 @@ +// Copyright (C) 2019-2022 Sebastian Lühnen +// +// +// This file is part of ClickUp-Java. +// +// ClickUp-Java is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ClickUp-Java is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with ClickUp-Java. If not, see . +// +// +// Created By: Sebastian Lühnen +// Created On: 23.04.2022 +// Last Edited On: 23.04.2022 +// Language: Java +// +package io.github.schreddo.nerdy.clickup.api.models.base; + +import io.github.schreddo.nerdy.clickup.api.enums.Operator; + +public class CustomField { + + private String fieldID; + private String value; + private Operator operator; + + public String getFieldID() { + return fieldID; + } + public void setFieldID(String fieldID) { + this.fieldID = fieldID; + } + public String getValue() { + return value; + } + public void setValue(String value) { + this.value = value; + } + public Operator getOperator() { + return operator; + } + public void setOperator(Operator operator) { + this.operator = operator; + } + + public CustomField(String fieldID, String value, Operator operator) { + this.setFieldID(fieldID); + this.setValue(value); + this.setOperator(operator); + } + + public String toJsonString() { + String operator = ""; + + switch (this.getOperator()) { + case EQUAL: operator = "="; + break; + case INEQUAL: operator = "!="; + break; + case GREATER_THAN: operator = ">"; + break; + case GREATER_THAN_OR_EQUAL: operator = ">="; + break; + case LESSS_THAN: operator = "<"; + break; + case LESSS_THAN_OR_EQUAL: operator = "<="; + break; + } + + if (getValue().matches("\\d+")) { + return "{\"field_id\":\"" + getFieldID() + "\",\"operator\":\"" + operator + "\",\"value\":" + getValue() + "}"; + } else { + return "{\"field_id\":\"" + getFieldID() + "\",\"operator\":\"" + operator + "\",\"value\":\"" + getValue() + "\"}"; + } + } +} From 40073cd27e0c0eb9d8cb9439e24b7f7842222561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20L=C3=BChnen?= Date: Sat, 23 Apr 2022 21:57:44 +0200 Subject: [PATCH 04/16] change ClickUpResponse to a abstract class --- .../clickup/api/response/ClickUpResponse.java | 103 ++---------------- 1 file changed, 11 insertions(+), 92 deletions(-) diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/ClickUpResponse.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/ClickUpResponse.java index 56721ef..af112f8 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/ClickUpResponse.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/ClickUpResponse.java @@ -1,4 +1,4 @@ -// Copyright (C) 2019 Sebastian Lühnen +// Copyright (C) 2019-2022 Sebastian Lühnen // // // This file is part of ClickUp-Java. @@ -19,52 +19,30 @@ // // Created By: Sebastian Lühnen // Created On: 14.09.2019 -// Last Edited On: 19.10.2019 +// Last Edited On: 23.04.2022 // Language: Java // package io.github.schreddo.nerdy.clickup.api.response; -import java.util.Arrays; - -import com.google.gson.Gson; - -import io.github.schreddo.nerdy.clickup.api.enums.ResponsesType; -import io.github.schreddo.nerdy.clickup.api.models.CUFolder; -import io.github.schreddo.nerdy.clickup.api.models.CUTask; -import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; - -public class ClickUpResponse { +public abstract class ClickUpResponse { - private final Class convertClass; - private ResponsesType responsesType; - private int responseCode; - private String json; + protected int responseCode; + protected String json; - private Class getConvertClass() { - return convertClass; - } - private ResponsesType getResponsesType() { - return responsesType; - } - private void setResponsesType(ResponsesType responsesType) { - this.responsesType = responsesType; - } - private int getResponseCode() { + protected int getResponseCode() { return responseCode; } - private void setResponseCode(int responseCode) { + protected void setResponseCode(int responseCode) { this.responseCode = responseCode; } - private String getJson() { + protected String getJson() { return json; } - private void setJson(String json) { + protected void setJson(String json) { this.json = json; } - public ClickUpResponse(Class convertClass, int responseCode, String json, ResponsesType responsesType) { - this.convertClass = convertClass; - setResponsesType(responsesType); + public ClickUpResponse(int responseCode, String json) { setResponseCode(responseCode); setJson(json); } @@ -77,64 +55,5 @@ public String json() { return getJson(); } - public Object obj() { - Gson gson = new Gson(); - - switch (getResponsesType()) { - case OBJECT: - return gson.fromJson(getJson(), getConvertClass()); - case TASKAS_AL: - return Arrays.asList((CUTask[])gson.fromJson(getJson(), getConvertClass())); - case FOLDERS_AL: - return Arrays.asList((CUFolder[])gson.fromJson(getJson(), getConvertClass())); - case ATTACHMENT_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getAttachment(); - case CHECKLIST_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getChecklist(); - case COMMENTS_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getComments(); - case DATA_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getData(); - case FIELDS_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getFields(); - case FOLDERS_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getFolders(); - case GOALS_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getGoals(); - case GOAL_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getGoal(); - case KEY_RESULT_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getKeyResult(); - case LISTS_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getLists(); - case MEMBERS_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getMembers(); - case SHARED_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getShared(); - case SPACES_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getSpaces(); - case TAGS_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getTags(); - case TAG_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getTag(); - case TASKS_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getTasks(); - case TASK_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getTag(); - case TEAMS_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getTeams(); - case TEMPLATES_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getTemplates(); - case USER_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getUser(); - case VIEWS_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getViews(); - case VIEW_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getView(); - case WEBHOOKS_BC: - return ((BaseCollection)gson.fromJson(getJson(), getConvertClass())).getWebhooks(); - default: - return gson.fromJson(getJson(), getConvertClass()); - } - } + public abstract Object obj(); } From b7ca8fa8e766636f9b853c7e23cfbb0d1861e54e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20L=C3=BChnen?= Date: Sat, 23 Apr 2022 22:15:03 +0200 Subject: [PATCH 05/16] rework 'create task' methods return type --- .../schreddo/nerdy/clickup/api/ClickUp.java | 8 ++-- .../api/requests/tasks/CreateTaskRequest.java | 26 +++++------ .../clickup/api/response/CUTaskResponse.java | 44 +++++++++++++++++++ 3 files changed, 59 insertions(+), 19 deletions(-) create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTaskResponse.java diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java index 632e4e1..d0ab79e 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java @@ -1,4 +1,4 @@ -// Copyright (C) 2019 Sebastian Lühnen +// Copyright (C) 2019-2022 Sebastian Lühnen // // // This file is part of ClickUp-Java. @@ -19,7 +19,7 @@ // // Created By: Sebastian Lühnen // Created On: 14.09.2019 -// Last Edited On: 19.10.2019 +// Last Edited On: 23.04.2022 // Language: Java // package io.github.schreddo.nerdy.clickup.api; @@ -58,7 +58,7 @@ import io.github.schreddo.nerdy.clickup.api.requests.tasks.GetTasksRequest; import io.github.schreddo.nerdy.clickup.api.requests.tasks.UpdateTaskRequest; import io.github.schreddo.nerdy.clickup.api.requests.teams.GetTeamsRequest; -import io.github.schreddo.nerdy.clickup.api.response.ClickUpResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUTaskResponse; public class ClickUp { private String accessToken; @@ -188,7 +188,7 @@ public ClickUpResponse getList(Long listID) { return new GetListRequest(getAccessToken(), listID).execute(); } - public ClickUpResponse createTask(Long listID, CUTask task) { + public CUTaskResponse createTask(Long listID, CUTask task) { return new CreateTaskRequest(getAccessToken(), listID, task).execute(); } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/CreateTaskRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/CreateTaskRequest.java index 98a2676..7573cbb 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/CreateTaskRequest.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/CreateTaskRequest.java @@ -1,4 +1,4 @@ -// Copyright (C) 2019 Sebastian Lühnen +// Copyright (C) 2019-2022 Sebastian Lühnen // // // This file is part of ClickUp-Java. @@ -19,31 +19,25 @@ // // Created By: Sebastian Lühnen // Created On: 14.09.2019 -// Last Edited On: 19.10.2019 +// Last Edited On: 23.04.2022 // Language: Java // package io.github.schreddo.nerdy.clickup.api.requests.tasks; import com.google.gson.Gson; -import io.github.schreddo.nerdy.clickup.api.enums.ResponsesType; import io.github.schreddo.nerdy.clickup.api.models.CUTask; -import io.github.schreddo.nerdy.clickup.api.response.ClickUpResponse; +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUTaskResponse; import io.github.schreddo.nerdy.http.request.HTTPRequest; import io.github.schreddo.nerdy.http.request.enums.RequestMethod; import io.github.schreddo.nerdy.http.request.models.Response; -public class CreateTaskRequest { - private String accessToken; +public class CreateTaskRequest extends ClickUpRequest { + private Long listID; private CUTask task; - public String getAccessToken() { - return accessToken; - } - public void setAccessToken(String accessToken) { - this.accessToken = accessToken; - } public Long getListID() { return listID; } @@ -58,12 +52,14 @@ public void setTask(CUTask task) { } public CreateTaskRequest(String accessToken, Long listID, CUTask task) { - setAccessToken(accessToken); + super(accessToken); + setListID(listID); setTask(task); } - public ClickUpResponse execute() { + @Override + public CUTaskResponse execute() { Gson gson = new Gson(); HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/list/" + getListID() + "/task", RequestMethod.POST); httpRequest.addHeaderProperty("Authorization", getAccessToken()); @@ -72,6 +68,6 @@ public ClickUpResponse execute() { Response response = httpRequest.executeRequest(); - return new ClickUpResponse(CUTask.class, response.getResponseCode(), response.getResponse(), ResponsesType.OBJECT); + return new CUTaskResponse(response.getResponseCode(), response.getResponse()); } } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTaskResponse.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTaskResponse.java new file mode 100644 index 0000000..1285573 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTaskResponse.java @@ -0,0 +1,44 @@ +// Copyright (C) 2019-2022 Sebastian Lühnen +// +// +// This file is part of ClickUp-Java. +// +// ClickUp-Java is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ClickUp-Java is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with ClickUp-Java. If not, see . +// +// +// Created By: Sebastian Lühnen +// Created On: 17.06.2021 +// Last Edited On: 23.04.2022 +// Language: Java +// +package io.github.schreddo.nerdy.clickup.api.response; + +import com.google.gson.Gson; + +import io.github.schreddo.nerdy.clickup.api.models.CUTask; + +public class CUTaskResponse extends ClickUpResponse { + + public CUTaskResponse(int responseCode, String json) { + super(responseCode, json); + } + + @Override + public CUTask obj() { + Gson gson = new Gson(); + + return gson.fromJson(getJson(), CUTask.class); + } + +} From 1b3d4e368cddd0eb556711c41ed861d559bc0a1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20L=C3=BChnen?= Date: Sat, 23 Apr 2022 22:18:38 +0200 Subject: [PATCH 06/16] rework 'update task' methods return type --- .../schreddo/nerdy/clickup/api/ClickUp.java | 2 +- .../api/requests/tasks/UpdateTaskRequest.java | 51 +++++++++++++------ 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java index d0ab79e..113e880 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java @@ -192,7 +192,7 @@ public CUTaskResponse createTask(Long listID, CUTask task) { return new CreateTaskRequest(getAccessToken(), listID, task).execute(); } - public ClickUpResponse updateTask(String taskID, CUTask task) { + public CUTaskResponse updateTask(String taskID, CUTask task) { return new UpdateTaskRequest(getAccessToken(), taskID, task).execute(); } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/UpdateTaskRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/UpdateTaskRequest.java index a261a3a..5bd4994 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/UpdateTaskRequest.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/UpdateTaskRequest.java @@ -1,4 +1,4 @@ -// Copyright (C) 2019 Sebastian Lühnen +// Copyright (C) 2019-2022 Sebastian Lühnen // // // This file is part of ClickUp-Java. @@ -19,31 +19,27 @@ // // Created By: Sebastian Lühnen // Created On: 14.09.2019 -// Last Edited On: 19.10.2019 +// Last Edited On: 23.04.2022 // Language: Java // package io.github.schreddo.nerdy.clickup.api.requests.tasks; import com.google.gson.Gson; -import io.github.schreddo.nerdy.clickup.api.enums.ResponsesType; import io.github.schreddo.nerdy.clickup.api.models.CUTask; -import io.github.schreddo.nerdy.clickup.api.response.ClickUpResponse; +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUTaskResponse; import io.github.schreddo.nerdy.http.request.HTTPRequest; import io.github.schreddo.nerdy.http.request.enums.RequestMethod; import io.github.schreddo.nerdy.http.request.models.Response; -public class UpdateTaskRequest { - private String accessToken; +public class UpdateTaskRequest extends ClickUpRequest { + private String taskID; private CUTask task; + private Boolean useCustomTaskIDs; + private String teamID; - public String getAccessToken() { - return accessToken; - } - public void setAccessToken(String accessToken) { - this.accessToken = accessToken; - } public String getTaskID() { return taskID; } @@ -56,22 +52,47 @@ public CUTask getTask() { public void setTask(CUTask task) { this.task = task; } + public Boolean getUseCustomTaskIDs() { + return useCustomTaskIDs; + } + public void setUseCustomTaskIDs(Boolean useCustomTaskIDs) { + this.useCustomTaskIDs = useCustomTaskIDs; + } + public String getTeamID() { + return teamID; + } + public void setTeamID(String teamID) { + this.teamID = teamID; + } + + public UpdateTaskRequest(String accessToken, CUTask task) { + super(accessToken); + + setTaskID(task.getID()); + setTask(task); + } public UpdateTaskRequest(String accessToken, String taskID, CUTask task) { - setAccessToken(accessToken); + super(accessToken); + setTaskID(taskID); setTask(task); } - public ClickUpResponse execute() { + @Override + public CUTaskResponse execute() { Gson gson = new Gson(); HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/task/" + getTaskID(), RequestMethod.PUT); httpRequest.addHeaderProperty("Authorization", getAccessToken()); httpRequest.addHeaderProperty("Content-Type", "application/json"); + + if (getUseCustomTaskIDs()) httpRequest.addURLParamenter("custom_task_ids", "true"); + if (getTeamID() != null) httpRequest.addURLParamenter("team_id", getTeamID()); + httpRequest.addPayload(gson.toJson(getTask())); Response response = httpRequest.executeRequest(); - return new ClickUpResponse(CUTask.class, response.getResponseCode(), response.getResponse(), ResponsesType.OBJECT); + return new CUTaskResponse(response.getResponseCode(), response.getResponse()); } } From 785fb465c17cbd90dd25c75242dbee1e2087285c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20L=C3=BChnen?= Date: Sat, 23 Apr 2022 22:20:06 +0200 Subject: [PATCH 07/16] rework 'delete task' methods return type --- .../schreddo/nerdy/clickup/api/ClickUp.java | 6 +-- .../api/response/CUDeleteResponse.java | 37 +++++++++++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUDeleteResponse.java diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java index 113e880..1d37b02 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java @@ -58,6 +58,7 @@ import io.github.schreddo.nerdy.clickup.api.requests.tasks.GetTasksRequest; import io.github.schreddo.nerdy.clickup.api.requests.tasks.UpdateTaskRequest; import io.github.schreddo.nerdy.clickup.api.requests.teams.GetTeamsRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUDeleteResponse; import io.github.schreddo.nerdy.clickup.api.response.CUTaskResponse; public class ClickUp { @@ -197,9 +198,8 @@ public CUTaskResponse updateTask(String taskID, CUTask task) { } public boolean deleteTask(String taskID) { - ClickUpResponse response = new DeleteTaskRequest(getAccessToken(), taskID).execute(); - - if (response.code() == 200) { + CUDeleteResponse response = new DeleteTaskRequest(getAccessToken(), taskID).execute(); + if (response.code() == 204) { return true; } else { return false; diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUDeleteResponse.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUDeleteResponse.java new file mode 100644 index 0000000..e038b67 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUDeleteResponse.java @@ -0,0 +1,37 @@ +// Copyright (C) 2019-2022 Sebastian Lühnen +// +// +// This file is part of ClickUp-Java. +// +// ClickUp-Java is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ClickUp-Java is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with ClickUp-Java. If not, see . +// +// +// Created By: Sebastian Lühnen +// Created On: 23.04.2022 +// Last Edited On: 23.04.2022 +// Language: Java +// +package io.github.schreddo.nerdy.clickup.api.response; + +public class CUDeleteResponse extends ClickUpResponse { + + public CUDeleteResponse(int responseCode, String json) { + super(responseCode, json); + } + + @Override + public Object obj() { + return null; + } +} From 8e3e80710ff477fe7583c814a7af3a2ef37c949b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20L=C3=BChnen?= Date: Sat, 23 Apr 2022 22:22:03 +0200 Subject: [PATCH 08/16] rework 'get task' methods return type --- .../schreddo/nerdy/clickup/api/ClickUp.java | 2 +- .../api/requests/tasks/GetTaskRequest.java | 27 ++++++++----------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java index 1d37b02..22c6a2d 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java @@ -210,7 +210,7 @@ public ClickUpResponse getTasks(Long listID, Boolean archived) { return new GetTasksRequest(getAccessToken(), listID, archived).execute(); } - public ClickUpResponse getTask(String taskID) { + public CUTaskResponse getTask(String taskID) { return new GetTaskRequest(getAccessToken(), taskID).execute(); } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/GetTaskRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/GetTaskRequest.java index 5691270..cf57249 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/GetTaskRequest.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/GetTaskRequest.java @@ -1,4 +1,4 @@ -// Copyright (C) 2019 Sebastian Lühnen +// Copyright (C) 2019-2022 Sebastian Lühnen // // // This file is part of ClickUp-Java. @@ -19,28 +19,21 @@ // // Created By: Sebastian Lühnen // Created On: 14.09.2019 -// Last Edited On: 19.10.2019 +// Last Edited On: 23.04.2022 // Language: Java // package io.github.schreddo.nerdy.clickup.api.requests.tasks; -import io.github.schreddo.nerdy.clickup.api.enums.ResponsesType; -import io.github.schreddo.nerdy.clickup.api.models.CUTask; -import io.github.schreddo.nerdy.clickup.api.response.ClickUpResponse; +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUTaskResponse; import io.github.schreddo.nerdy.http.request.HTTPRequest; import io.github.schreddo.nerdy.http.request.enums.RequestMethod; import io.github.schreddo.nerdy.http.request.models.Response; -public class GetTaskRequest { - private String accessToken; +public class GetTaskRequest extends ClickUpRequest { + private String taskID; - public String getAccessToken() { - return accessToken; - } - public void setAccessToken(String accessToken) { - this.accessToken = accessToken; - } public String getTaskID() { return taskID; } @@ -49,17 +42,19 @@ public void setTaskID(String taskID) { } public GetTaskRequest(String accessToken, String taskID) { - setAccessToken(accessToken); + super(accessToken); + setTaskID(taskID); } - public ClickUpResponse execute() { + @Override + public CUTaskResponse execute() { HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/task/" + getTaskID(), RequestMethod.GET); httpRequest.addHeaderProperty("Authorization", getAccessToken()); httpRequest.addHeaderProperty("Content-Type", "application/json"); Response response = httpRequest.executeRequest(); - return new ClickUpResponse(CUTask.class, response.getResponseCode(), response.getResponse(), ResponsesType.OBJECT); + return new CUTaskResponse(response.getResponseCode(), response.getResponse()); } } From 512f47c8bf9c2b040a1175478ab4516c3130d8e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20L=C3=BChnen?= Date: Sat, 23 Apr 2022 22:23:50 +0200 Subject: [PATCH 09/16] rework 'get tasks' methods return type and filter options --- .../schreddo/nerdy/clickup/api/ClickUp.java | 6 +- .../api/requests/tasks/GetTasksRequest.java | 104 ++++++++++++++---- .../clickup/api/response/CUTasksResponse.java | 47 ++++++++ 3 files changed, 135 insertions(+), 22 deletions(-) create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTasksResponse.java diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java index 22c6a2d..6a98c78 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java @@ -30,6 +30,7 @@ import io.github.schreddo.nerdy.clickup.api.models.CUTask; import io.github.schreddo.nerdy.clickup.api.models.base.Authorization; import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; +import io.github.schreddo.nerdy.clickup.api.models.filter.CUTaskFilterOptions; import io.github.schreddo.nerdy.clickup.api.requests.authorization.AccessTokenRequest; import io.github.schreddo.nerdy.clickup.api.requests.authorization.GetAuthorizedTeamsRequest; import io.github.schreddo.nerdy.clickup.api.requests.authorization.GetAuthorizedUserRequest; @@ -60,6 +61,7 @@ import io.github.schreddo.nerdy.clickup.api.requests.teams.GetTeamsRequest; import io.github.schreddo.nerdy.clickup.api.response.CUDeleteResponse; import io.github.schreddo.nerdy.clickup.api.response.CUTaskResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUTasksResponse; public class ClickUp { private String accessToken; @@ -206,8 +208,8 @@ public boolean deleteTask(String taskID) { } } - public ClickUpResponse getTasks(Long listID, Boolean archived) { - return new GetTasksRequest(getAccessToken(), listID, archived).execute(); + public CUTasksResponse getTasks(Long listID, CUTaskFilterOptions filterOptions) { + return new GetTasksRequest(getAccessToken(), listID, filterOptions).execute(); } public CUTaskResponse getTask(String taskID) { diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/GetTasksRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/GetTasksRequest.java index b1b3897..a8f69e4 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/GetTasksRequest.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/GetTasksRequest.java @@ -1,4 +1,4 @@ -// Copyright (C) 2019 Sebastian Lühnen +// Copyright (C) 2019-2022 Sebastian Lühnen // // // This file is part of ClickUp-Java. @@ -19,29 +19,24 @@ // // Created By: Sebastian Lühnen // Created On: 14.09.2019 -// Last Edited On: 19.10.2019 +// Last Edited On: 23.04.2022 // Language: Java // package io.github.schreddo.nerdy.clickup.api.requests.tasks; -import io.github.schreddo.nerdy.clickup.api.enums.ResponsesType; -import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; -import io.github.schreddo.nerdy.clickup.api.response.ClickUpResponse; +import io.github.schreddo.nerdy.clickup.api.models.filter.CUTaskFilterOptions; +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUTasksResponse; import io.github.schreddo.nerdy.http.request.HTTPRequest; import io.github.schreddo.nerdy.http.request.enums.RequestMethod; import io.github.schreddo.nerdy.http.request.models.Response; -public class GetTasksRequest { - private String accessToken; +public class GetTasksRequest extends ClickUpRequest { + private Long listID; private Boolean archived; + private CUTaskFilterOptions filterOptions; - public String getAccessToken() { - return accessToken; - } - public void setAccessToken(String accessToken) { - this.accessToken = accessToken; - } public Long getListID() { return listID; } @@ -54,21 +49,90 @@ public Boolean getArchived() { public void setArchived(Boolean archived) { this.archived = archived; } + public CUTaskFilterOptions getFilterOptions() { + return filterOptions; + } + public void setFilterOptions(CUTaskFilterOptions filterOptions) { + this.filterOptions = filterOptions; + } + + public GetTasksRequest(String accessToken, Long listID) { + super(accessToken); + + this.setListID(listID); + this.setFilterOptions(null); + } - public GetTasksRequest(String accessToken, Long listID, Boolean archived) { - setAccessToken(accessToken); - setListID(listID); - setArchived(archived); + public GetTasksRequest(String accessToken, Long listID, CUTaskFilterOptions filterOptions) { + super(accessToken); + + this.setListID(listID); + this.setFilterOptions(filterOptions); } - public ClickUpResponse execute() { + @Override + public CUTasksResponse execute() { HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/list/" + getListID() + "/task", RequestMethod.GET); httpRequest.addHeaderProperty("Authorization", getAccessToken()); httpRequest.addHeaderProperty("Content-Type", "application/json"); - httpRequest.addURLParamenter("archived", getArchived().toString()); + + if (this.getFilterOptions() != null) { + httpRequest = addFilterOptions(httpRequest); + } Response response = httpRequest.executeRequest(); - return new ClickUpResponse(BaseCollection.class, response.getResponseCode(), response.getResponse(), ResponsesType.TASKS_BC); + return new CUTasksResponse(response.getResponseCode(), response.getResponse()); + } + + private HTTPRequest addFilterOptions(HTTPRequest httpRequest) { + if (getFilterOptions().getArchived() != null) + httpRequest.addURLParamenter("archived", getFilterOptions().getArchived().toString()); + if (getFilterOptions().getPage() != null) + httpRequest.addURLParamenter("page", getFilterOptions().toString()); + if (getFilterOptions().getOrderBy() != null) + httpRequest.addURLParamenter("order_by", getFilterOptions().getOrderBy()); + if (getFilterOptions().getReverse() != null) + httpRequest.addURLParamenter("reverse", getFilterOptions().getReverse().toString()); + if (getFilterOptions().getSubtasks() != null) + httpRequest.addURLParamenter("subtasks", getFilterOptions().getSubtasks().toString()); + if (getFilterOptions().getStatuses() != null) { + for (int i = 0; i < getFilterOptions().getStatuses().size(); i++) { + httpRequest.addURLParamenter("statuses[]", getFilterOptions().getStatuses().get(i).getStatus()); + } + } + if (getFilterOptions().getIncludeClosed() != null) + httpRequest.addURLParamenter("include_closed", getFilterOptions().getIncludeClosed().toString()); + if (getFilterOptions().getAssignees() != null) { + for (int i = 0; i < getFilterOptions().getAssignees().size(); i++) { + httpRequest.addURLParamenter("assignees[]", getFilterOptions().getAssignees().get(i).getID().toString()); + } + } + if (getFilterOptions().getDueDateGT() != null) + httpRequest.addURLParamenter("due_date_gt", getFilterOptions().getDueDateGT().toString()); + if (getFilterOptions().getDueDateLT() != null) + httpRequest.addURLParamenter("due_date_lt", getFilterOptions().getDueDateLT().toString()); + if (getFilterOptions().getDateCreatedGT() != null) + httpRequest.addURLParamenter("date_created_gt", getFilterOptions().getDateCreatedGT().toString()); + if (getFilterOptions().getDateCreatedLT() != null) + httpRequest.addURLParamenter("date_created_lt", getFilterOptions().getDateCreatedLT().toString()); + if (getFilterOptions().getDateUpdatedGT() != null) + httpRequest.addURLParamenter("date_updated_gt", getFilterOptions().getDateUpdatedGT().toString()); + if (getFilterOptions().getDateUpdatedLT() != null) + httpRequest.addURLParamenter("date_updated_lt", getFilterOptions().getDateUpdatedLT().toString()); + if (getFilterOptions().getCustomFields() != null) { + String customFieldsArray = "["; + for (int i = 0; i < getFilterOptions().getCustomFields().size(); i++) { + customFieldsArray += getFilterOptions().getCustomFields().get(i).toJsonString(); + if ((i + 1) < getFilterOptions().getCustomFields().size()) { + customFieldsArray += ","; + } + } + customFieldsArray += "]"; + + httpRequest.addURLParamenter("custom_fields", customFieldsArray); + } + + return httpRequest; } } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTasksResponse.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTasksResponse.java new file mode 100644 index 0000000..2def870 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTasksResponse.java @@ -0,0 +1,47 @@ +// Copyright (C) 2019-2022 Sebastian Lühnen +// +// +// This file is part of ClickUp-Java. +// +// ClickUp-Java is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ClickUp-Java is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with ClickUp-Java. If not, see . +// +// +// Created By: Sebastian Lühnen +// Created On: 23.04.2022 +// Last Edited On: 23.04.2022 +// Language: Java +// +package io.github.schreddo.nerdy.clickup.api.response; + +import java.util.ArrayList; + +import com.google.gson.Gson; + +import io.github.schreddo.nerdy.clickup.api.models.CUTask; +import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; + +public class CUTasksResponse extends ClickUpResponse { + + public CUTasksResponse(int responseCode, String json) { + super(responseCode, json); + } + + @Override + public ArrayList obj() { + Gson gson = new Gson(); + + return gson.fromJson(getJson(), BaseCollection.class).getTasks(); + } + +} From 9f669af1264b6c7a14475cabfa9e442efbb1c782 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20L=C3=BChnen?= Date: Sat, 23 Apr 2022 22:28:38 +0200 Subject: [PATCH 10/16] add 'get filtered team tasks' methods functionality --- .../schreddo/nerdy/clickup/api/ClickUp.java | 8 +- .../models/filter/CUTaskFilterOptions.java | 158 +++++++++++ .../filter/CUTeamTaskFilterOptions.java | 82 ++++++ .../tasks/GetFilteredTeamTasksRequest.java | 266 ++++++++---------- 4 files changed, 361 insertions(+), 153 deletions(-) create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/filter/CUTaskFilterOptions.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/filter/CUTeamTaskFilterOptions.java diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java index 6a98c78..47b4d32 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java @@ -31,6 +31,7 @@ import io.github.schreddo.nerdy.clickup.api.models.base.Authorization; import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; import io.github.schreddo.nerdy.clickup.api.models.filter.CUTaskFilterOptions; +import io.github.schreddo.nerdy.clickup.api.models.filter.CUTeamTaskFilterOptions; import io.github.schreddo.nerdy.clickup.api.requests.authorization.AccessTokenRequest; import io.github.schreddo.nerdy.clickup.api.requests.authorization.GetAuthorizedTeamsRequest; import io.github.schreddo.nerdy.clickup.api.requests.authorization.GetAuthorizedUserRequest; @@ -55,6 +56,7 @@ import io.github.schreddo.nerdy.clickup.api.requests.spaces.UpdateSpaceRequest; import io.github.schreddo.nerdy.clickup.api.requests.tasks.CreateTaskRequest; import io.github.schreddo.nerdy.clickup.api.requests.tasks.DeleteTaskRequest; +import io.github.schreddo.nerdy.clickup.api.requests.tasks.GetFilteredTeamTasksRequest; import io.github.schreddo.nerdy.clickup.api.requests.tasks.GetTaskRequest; import io.github.schreddo.nerdy.clickup.api.requests.tasks.GetTasksRequest; import io.github.schreddo.nerdy.clickup.api.requests.tasks.UpdateTaskRequest; @@ -216,7 +218,11 @@ public CUTaskResponse getTask(String taskID) { return new GetTaskRequest(getAccessToken(), taskID).execute(); } - public ClickUpResponse getListMembers(Long listID) { + public CUTasksResponse getFilteredTeamTasks(Long teamID, CUTeamTaskFilterOptions filterOptions) { + return new GetFilteredTeamTasksRequest(getAccessToken(), teamID, filterOptions).execute(); + } + + public ClickUpResponseOld getListMembers(Long listID) { return new GetListMembersRequest(getAccessToken(), listID).execute(); } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/filter/CUTaskFilterOptions.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/filter/CUTaskFilterOptions.java new file mode 100644 index 0000000..20ae143 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/filter/CUTaskFilterOptions.java @@ -0,0 +1,158 @@ +// Copyright (C) 2019-2022 Sebastian Lühnen +// +// +// This file is part of ClickUp-Java. +// +// ClickUp-Java is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ClickUp-Java is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with ClickUp-Java. If not, see . +// +// +// Created By: Sebastian Lühnen +// Created On: 23.04.2022 +// Last Edited On: 23.04.2022 +// Language: Java +// +package io.github.schreddo.nerdy.clickup.api.models.filter; + +import java.util.ArrayList; + +import io.github.schreddo.nerdy.clickup.api.enums.Operator; +import io.github.schreddo.nerdy.clickup.api.models.CUMember; +import io.github.schreddo.nerdy.clickup.api.models.CUStatus; +import io.github.schreddo.nerdy.clickup.api.models.base.CustomField; + +public class CUTaskFilterOptions { + + private Boolean archived; + private Integer page; + private String orderBy; + private Boolean reverse; + private Boolean subtasks; + private ArrayList statuses; + private Boolean includeClosed; + private ArrayList assignees; + private Integer dueDateGT; + private Integer dueDateLT; + private Integer dateCreatedGT; + private Integer dateCreatedLT; + private Integer dateUpdatedGT; + private Integer dateUpdatedLT; + private ArrayList customFields; + + public Boolean getArchived() { + return archived; + } + public void setArchived(Boolean archived) { + this.archived = archived; + } + public Integer getPage() { + return page; + } + public void setPage(Integer page) { + this.page = page; + } + public String getOrderBy() { + return orderBy; + } + public void setOrderBy(String orderBy) { + this.orderBy = orderBy; + } + public Boolean getReverse() { + return reverse; + } + public void setReverse(Boolean reverse) { + this.reverse = reverse; + } + public Boolean getSubtasks() { + return subtasks; + } + public void setSubtasks(Boolean subtasks) { + this.subtasks = subtasks; + } + public ArrayList getStatuses() { + return statuses; + } + public void setStatuses(ArrayList statuses) { + this.statuses = statuses; + } + public Boolean getIncludeClosed() { + return includeClosed; + } + public void setIncludeClosed(Boolean includeClosed) { + this.includeClosed = includeClosed; + } + public ArrayList getAssignees() { + return assignees; + } + public void setAssignees(ArrayList assignees) { + this.assignees = assignees; + } + public Integer getDueDateGT() { + return dueDateGT; + } + public void setDueDateGT(Integer dueDateGT) { + this.dueDateGT = dueDateGT; + } + public Integer getDueDateLT() { + return dueDateLT; + } + public void setDueDateLT(Integer dueDateLT) { + this.dueDateLT = dueDateLT; + } + public Integer getDateCreatedGT() { + return dateCreatedGT; + } + public void setDateCreatedGT(Integer dateCreatedGT) { + this.dateCreatedGT = dateCreatedGT; + } + public Integer getDateCreatedLT() { + return dateCreatedLT; + } + public void setDateCreatedLT(Integer dateCreatedLT) { + this.dateCreatedLT = dateCreatedLT; + } + public Integer getDateUpdatedGT() { + return dateUpdatedGT; + } + public void setDateUpdatedGT(Integer dateUpdatedGT) { + this.dateUpdatedGT = dateUpdatedGT; + } + public Integer getDateUpdatedLT() { + return dateUpdatedLT; + } + public void setDateUpdatedLT(Integer dateUpdatedLT) { + this.dateUpdatedLT = dateUpdatedLT; + } + public ArrayList getCustomFields() { + return customFields; + } + public void setCustomFields(ArrayList customFields) { + this.customFields = customFields; + } + + public CUTaskFilterOptions() { + + } + + public void addStatuses(CUStatus status) { + getStatuses().add(status); + } + + public void addAssignees(CUMember member) { + getAssignees().add(member); + } + + public void addCustomFields(String fieldID, String value, Operator operator) { + getCustomFields().add(new CustomField(fieldID, value, operator)); + } +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/filter/CUTeamTaskFilterOptions.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/filter/CUTeamTaskFilterOptions.java new file mode 100644 index 0000000..1688cac --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/filter/CUTeamTaskFilterOptions.java @@ -0,0 +1,82 @@ +// Copyright (C) 2019-2022 Sebastian Lühnen +// +// +// This file is part of ClickUp-Java. +// +// ClickUp-Java is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ClickUp-Java is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with ClickUp-Java. If not, see . +// +// +// Created By: Sebastian Lühnen +// Created On: 23.04.2022 +// Last Edited On: 23.04.2022 +// Language: Java +// +package io.github.schreddo.nerdy.clickup.api.models.filter; + +import java.util.ArrayList; + +import io.github.schreddo.nerdy.clickup.api.models.CUList; +import io.github.schreddo.nerdy.clickup.api.models.CUSpace; +import io.github.schreddo.nerdy.clickup.api.models.CUTag; + +public class CUTeamTaskFilterOptions extends CUTaskFilterOptions { + + private ArrayList spaces; + private ArrayList projects; + private ArrayList lists; + private ArrayList tags; + private Boolean useCustomTaskIDs; + private String teamID; + + public ArrayList getSpaces() { + return spaces; + } + public void setSpaces(ArrayList spaces) { + this.spaces = spaces; + } + public ArrayList getProjects() { + return projects; + } + public void setProjects(ArrayList projects) { + this.projects = projects; + } + public ArrayList getLists() { + return lists; + } + public void setLists(ArrayList lists) { + this.lists = lists; + } + public ArrayList getTags() { + return tags; + } + public void setTags(ArrayList tags) { + this.tags = tags; + } + public Boolean getUseCustomTaskIDs() { + return useCustomTaskIDs; + } + public void setUseCustomTaskIDs(Boolean useCustomTaskIDs) { + this.useCustomTaskIDs = useCustomTaskIDs; + } + public String getTeamID() { + return teamID; + } + public void setTeamID(String teamID) { + this.teamID = teamID; + } + + public CUTeamTaskFilterOptions() { + super(); + } +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/GetFilteredTeamTasksRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/GetFilteredTeamTasksRequest.java index e9a9fb4..1cce10f 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/GetFilteredTeamTasksRequest.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tasks/GetFilteredTeamTasksRequest.java @@ -1,4 +1,4 @@ -// Copyright (C) 2019 Sebastian Lühnen +// Copyright (C) 2019-2022 Sebastian Lühnen // // // This file is part of ClickUp-Java. @@ -19,173 +19,135 @@ // // Created By: Sebastian Lühnen // Created On: 14.09.2019 -// Last Edited On: 19.10.2019 +// Last Edited On: 23.04.2022 // Language: Java // package io.github.schreddo.nerdy.clickup.api.requests.tasks; -import io.github.schreddo.nerdy.clickup.api.models.CUTask; -import io.github.schreddo.nerdy.clickup.api.response.ClickUpResponse; +import io.github.schreddo.nerdy.clickup.api.models.filter.CUTeamTaskFilterOptions; +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUTasksResponse; +import io.github.schreddo.nerdy.http.request.HTTPRequest; +import io.github.schreddo.nerdy.http.request.enums.RequestMethod; +import io.github.schreddo.nerdy.http.request.models.Response; -public class GetFilteredTeamTasksRequest { - private String accessToken; - private String teamID; - private Integer page; - private String orderBY; - private Boolean reverse; - private Boolean subtasks; - private String[] spaceIDs; - private String[] projectIDs; - private String[] listIDs; - private String[] statuses; - private Boolean includeClosed; - private String[] assignees; - private String[] tags; - private Integer dueDateGT; - private Integer dueDateLT; - private Integer dateCreatedGT; - private Integer dateCreatedLT; - private Integer dateUpdatedGT; - private Integer dateUpdatedLT; +public class GetFilteredTeamTasksRequest extends ClickUpRequest { - public String getAccessToken() { - return accessToken; - } - public void setAccessToken(String accessToken) { - this.accessToken = accessToken; - } - public String getTeamID() { + private Long teamID; + private CUTeamTaskFilterOptions filterOptions; + + public Long getTeamID() { return teamID; } - public void setTeamID(String teamID) { + public void setTeamID(Long teamID) { this.teamID = teamID; } - public Integer getPage() { - return page; - } - public void setPage(Integer page) { - this.page = page; - } - public String getOrderBY() { - return orderBY; - } - public void setOrderBY(String orderBY) { - this.orderBY = orderBY; - } - public Boolean getReverse() { - return reverse; - } - public void setReverse(Boolean reverse) { - this.reverse = reverse; - } - public Boolean getSubtasks() { - return subtasks; - } - public void setSubtasks(Boolean subtasks) { - this.subtasks = subtasks; - } - public String[] getSpaceIDs() { - return spaceIDs; - } - public void setSpaceIDs(String[] spaceIDs) { - this.spaceIDs = spaceIDs; - } - public String[] getProjectIDs() { - return projectIDs; - } - public void setProjectIDs(String[] projectIDs) { - this.projectIDs = projectIDs; - } - public String[] getListIDs() { - return listIDs; - } - public void setListIDs(String[] listIDs) { - this.listIDs = listIDs; - } - public String[] getStatuses() { - return statuses; - } - public void setStatuses(String[] statuses) { - this.statuses = statuses; - } - public Boolean getIncludeClosed() { - return includeClosed; + public CUTeamTaskFilterOptions getFilterOptions() { + return filterOptions; } - public void setIncludeClosed(Boolean includeClosed) { - this.includeClosed = includeClosed; + public void setFilterOptions(CUTeamTaskFilterOptions filterOptions) { + this.filterOptions = filterOptions; } - public String[] getAssignees() { - return assignees; - } - public void setAssignees(String[] assignees) { - this.assignees = assignees; - } - public String[] getTags() { - return tags; - } - public void setTags(String[] tags) { - this.tags = tags; - } - public Integer getDueDateGT() { - return dueDateGT; - } - public void setDueDateGT(Integer dueDateGT) { - this.dueDateGT = dueDateGT; - } - public Integer getDueDateLT() { - return dueDateLT; - } - public void setDueDateLT(Integer dueDateLT) { - this.dueDateLT = dueDateLT; - } - public Integer getDateCreatedGT() { - return dateCreatedGT; - } - public void setDateCreatedGT(Integer dateCreatedGT) { - this.dateCreatedGT = dateCreatedGT; - } - public Integer getDateCreatedLT() { - return dateCreatedLT; - } - public void setDateCreatedLT(Integer dateCreatedLT) { - this.dateCreatedLT = dateCreatedLT; - } - public Integer getDateUpdatedGT() { - return dateUpdatedGT; - } - public void setDateUpdatedGT(Integer dateUpdatedGT) { - this.dateUpdatedGT = dateUpdatedGT; - } - public Integer getDateUpdatedLT() { - return dateUpdatedLT; - } - public void setDateUpdatedLT(Integer dateUpdatedLT) { - this.dateUpdatedLT = dateUpdatedLT; + + public GetFilteredTeamTasksRequest(String accessToken, Long teamID) { + super(accessToken); + + setTeamID(teamID); + setFilterOptions(null); } - public GetFilteredTeamTasksRequest(String accessToken, String teamID, int page) { - setAccessToken(accessToken); + public GetFilteredTeamTasksRequest(String accessToken, Long teamID, CUTeamTaskFilterOptions filterOptions) { + super(accessToken); + setTeamID(teamID); - setPage(page); - setOrderBY(null); - setReverse(null); - setSubtasks(null); - setSpaceIDs(null); - setProjectIDs(null); - setListIDs(null); - setStatuses(null); - setIncludeClosed(null); - setAssignees(null); - setTags(null); - setDueDateGT(null); - setDueDateLT(null); - setDateCreatedGT(null); - setDateCreatedLT(null); - setDateUpdatedGT(null); - setDateUpdatedLT(null); + setFilterOptions(filterOptions); + } + + @Override + public CUTasksResponse execute() { + HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/team/" + getTeamID() + "/task", RequestMethod.GET); + httpRequest.addHeaderProperty("Authorization", getAccessToken()); + httpRequest.addHeaderProperty("Content-Type", "application/json"); + + if (getFilterOptions() != null) { + httpRequest = addFilterOptions(httpRequest); + } + + Response response = httpRequest.executeRequest(); + + return new CUTasksResponse(response.getResponseCode(), response.getResponse()); } - public ClickUpResponse execute() { - return null; + private HTTPRequest addFilterOptions(HTTPRequest httpRequest) { + if (getFilterOptions().getPage() != null) + httpRequest.addURLParamenter("page", getFilterOptions().toString()); + if (getFilterOptions().getOrderBy() != null) + httpRequest.addURLParamenter("order_by", getFilterOptions().getOrderBy()); + if (getFilterOptions().getReverse() != null) + httpRequest.addURLParamenter("reverse", getFilterOptions().getReverse().toString()); + if (getFilterOptions().getSubtasks() != null) + httpRequest.addURLParamenter("subtasks", getFilterOptions().getSubtasks().toString()); + if (getFilterOptions().getStatuses() != null) { + for (int i = 0; i < getFilterOptions().getStatuses().size(); i++) { + httpRequest.addURLParamenter("statuses[]", getFilterOptions().getStatuses().get(i).getStatus()); + } + } + if (getFilterOptions().getSpaces() != null) { + for (int i = 0; i < getFilterOptions().getSpaces().size(); i++) { + httpRequest.addURLParamenter("space_ids[]", getFilterOptions().getSpaces().get(i).getID()); + } + } + if (getFilterOptions().getProjects() != null) { + for (int i = 0; i < getFilterOptions().getProjects().size(); i++) { + httpRequest.addURLParamenter("project_ids[]", getFilterOptions().getProjects().get(i).getID()); + } + } + if (getFilterOptions().getLists() != null) { + for (int i = 0; i < getFilterOptions().getLists().size(); i++) { + httpRequest.addURLParamenter("list_ids[]", getFilterOptions().getLists().get(i).getID()); + } + } + if (getFilterOptions().getTags() != null) { + for (int i = 0; i < getFilterOptions().getTags().size(); i++) { + httpRequest.addURLParamenter("tags[]", getFilterOptions().getTags().get(i).getName()); + } + } + if (getFilterOptions().getIncludeClosed() != null) + httpRequest.addURLParamenter("include_closed", getFilterOptions().getIncludeClosed().toString()); + if (getFilterOptions().getAssignees() != null) { + for (int i = 0; i < getFilterOptions().getAssignees().size(); i++) { + httpRequest.addURLParamenter("assignees[]", getFilterOptions().getAssignees().get(i).getID().toString()); + } + } + if (getFilterOptions().getDueDateGT() != null) + httpRequest.addURLParamenter("due_date_gt", getFilterOptions().getDueDateGT().toString()); + if (getFilterOptions().getDueDateLT() != null) + httpRequest.addURLParamenter("due_date_lt", getFilterOptions().getDueDateLT().toString()); + if (getFilterOptions().getDateCreatedGT() != null) + httpRequest.addURLParamenter("date_created_gt", getFilterOptions().getDateCreatedGT().toString()); + if (getFilterOptions().getDateCreatedLT() != null) + httpRequest.addURLParamenter("date_created_lt", getFilterOptions().getDateCreatedLT().toString()); + if (getFilterOptions().getDateUpdatedGT() != null) + httpRequest.addURLParamenter("date_updated_gt", getFilterOptions().getDateUpdatedGT().toString()); + if (getFilterOptions().getDateUpdatedLT() != null) + httpRequest.addURLParamenter("date_updated_lt", getFilterOptions().getDateUpdatedLT().toString()); + if (getFilterOptions().getCustomFields() != null) { + String customFieldsArray = "["; + for (int i = 0; i < getFilterOptions().getCustomFields().size(); i++) { + customFieldsArray += getFilterOptions().getCustomFields().get(i).toJsonString(); + if ((i + 1) < getFilterOptions().getCustomFields().size()) { + customFieldsArray += ","; + } + } + customFieldsArray += "]"; + + httpRequest.addURLParamenter("custom_fields", customFieldsArray); + } + if (getFilterOptions().getUseCustomTaskIDs() != null) + httpRequest.addURLParamenter("custom_task_ids", getFilterOptions().getUseCustomTaskIDs().toString()); + if (getFilterOptions().getTeamID() != null) + httpRequest.addURLParamenter("date_created_gt", getFilterOptions().getTeamID()); + + return httpRequest; } } From c4669a8ebb58a5698874a69a70735e6f0458d306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20L=C3=BChnen?= Date: Mon, 25 Apr 2022 20:59:44 +0200 Subject: [PATCH 11/16] add user api calls 'invite user to woekspace', 'edit user on workspace', 'remove user from workspace' and 'get user' --- .../schreddo/nerdy/clickup/api/ClickUp.java | 22 +++++ .../api/models/base/BaseCollection.java | 28 +++++- .../users/EditUserOnWorkspaceRequest.java | 96 +++++++++++++++++++ .../api/requests/users/GetUserRequest.java | 69 +++++++++++++ .../users/InviteUserToWorkspaceRequest.java | 87 +++++++++++++++++ .../users/RemoveUserFromWorkspaceRequest.java | 69 +++++++++++++ .../api/response/CUMemberResponse.java | 21 ++++ .../clickup/api/response/CUTeamResponse.java | 21 ++++ 8 files changed, 408 insertions(+), 5 deletions(-) create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/users/EditUserOnWorkspaceRequest.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/users/GetUserRequest.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/users/InviteUserToWorkspaceRequest.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/users/RemoveUserFromWorkspaceRequest.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUMemberResponse.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTeamResponse.java diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java index 47b4d32..2dc49bd 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java @@ -61,9 +61,15 @@ import io.github.schreddo.nerdy.clickup.api.requests.tasks.GetTasksRequest; import io.github.schreddo.nerdy.clickup.api.requests.tasks.UpdateTaskRequest; import io.github.schreddo.nerdy.clickup.api.requests.teams.GetTeamsRequest; +import io.github.schreddo.nerdy.clickup.api.requests.users.EditUserOnWorkspaceRequest; +import io.github.schreddo.nerdy.clickup.api.requests.users.GetUserRequest; +import io.github.schreddo.nerdy.clickup.api.requests.users.InviteUserToWorkspaceRequest; +import io.github.schreddo.nerdy.clickup.api.requests.users.RemoveUserFromWorkspaceRequest; import io.github.schreddo.nerdy.clickup.api.response.CUDeleteResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUMemberResponse; import io.github.schreddo.nerdy.clickup.api.response.CUTaskResponse; import io.github.schreddo.nerdy.clickup.api.response.CUTasksResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUTeamResponse; public class ClickUp { private String accessToken; @@ -229,4 +235,20 @@ public ClickUpResponseOld getListMembers(Long listID) { public ClickUpResponse getTaskMembers(String taskID) { return new GetTaskMembersRequest(getAccessToken(), taskID).execute(); } + + public CUTeamResponse inviteUserToWoekspace(String teamID, String email, Boolean asAdmin) { + return new InviteUserToWorkspaceRequest(getAccessToken(), teamID, email, asAdmin).execute(); + } + + public CUMemberResponse editUserOnWorkspace(String teamID, Long userID, String username, Boolean asAdmin) { + return new EditUserOnWorkspaceRequest(getAccessToken(), teamID, userID, username, asAdmin).execute(); + } + + public CUTeamResponse removeUserFromWorkspace(String teamID, Long userID) { + return new RemoveUserFromWorkspaceRequest(getAccessToken(), teamID, userID).execute(); + } + + public CUMemberResponse getUser(String teamID, Long userID) { + return new GetUserRequest(getAccessToken(), teamID, userID).execute(); + } } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/base/BaseCollection.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/base/BaseCollection.java index 3b3a9c9..602e406 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/base/BaseCollection.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/base/BaseCollection.java @@ -1,4 +1,4 @@ -// Copyright (C) 2019 Sebastian Lühnen +// Copyright (C) 2019-2022 Sebastian Lühnen // // // This file is part of ClickUp-Java. @@ -19,7 +19,7 @@ // // Created By: Sebastian Lühnen // Created On: 14.09.2019 -// Last Edited On: 19.10.2019 +// Last Edited On: 25.04.2022 // Language: Java // package io.github.schreddo.nerdy.clickup.api.models.base; @@ -40,14 +40,18 @@ import io.github.schreddo.nerdy.clickup.api.models.CUTag; import io.github.schreddo.nerdy.clickup.api.models.CUTask; import io.github.schreddo.nerdy.clickup.api.models.CUTeam; +import io.github.schreddo.nerdy.clickup.api.models.CUUser; import io.github.schreddo.nerdy.clickup.api.models.CUView; import io.github.schreddo.nerdy.clickup.api.models.CUWebhook; public class BaseCollection { + @SerializedName("attachment") private CUAttachment attachment; @SerializedName("user") - private CUMember user; + private CUUser user; + @SerializedName("team") + private CUTeam team; @SerializedName("teams") private ArrayList teams; @SerializedName("checklist") @@ -66,6 +70,8 @@ public class BaseCollection { private Object keyResult; @SerializedName("lists") private ArrayList lists; + @SerializedName("member") + private CUMember member; @SerializedName("members") private ArrayList members; @SerializedName("shared") @@ -96,12 +102,18 @@ public CUAttachment getAttachment() { public void setAttachment(CUAttachment attachment) { this.attachment = attachment; } - public CUMember getUser() { + public CUUser getUser() { return user; } - public void setUser(CUMember user) { + public void setUser(CUUser user) { this.user = user; } + public CUTeam getTeam() { + return team; + } + public void setTeam(CUTeam team) { + this.team = team; + } public ArrayList getTeams() { return teams; } @@ -156,6 +168,12 @@ public ArrayList getLists() { public void setLists(ArrayList lists) { this.lists = lists; } + public CUMember getMember() { + return member; + } + public void setMember(CUMember member) { + this.member = member; + } public ArrayList getMembers() { return members; } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/users/EditUserOnWorkspaceRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/users/EditUserOnWorkspaceRequest.java new file mode 100644 index 0000000..3106367 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/users/EditUserOnWorkspaceRequest.java @@ -0,0 +1,96 @@ +// Copyright (C) 2019-2022 Sebastian Lühnen +// +// +// This file is part of ClickUp-Java. +// +// ClickUp-Java is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ClickUp-Java is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with ClickUp-Java. If not, see . +// +// +// Created By: Sebastian Lühnen +// Created On: 25.04.2022 +// Last Edited On: 25.04.2022 +// Language: Java +// +package io.github.schreddo.nerdy.clickup.api.requests.users; + +import com.google.gson.Gson; + +import io.github.schreddo.nerdy.clickup.api.models.CUUser; +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUMemberResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUTaskResponse; +import io.github.schreddo.nerdy.http.request.HTTPRequest; +import io.github.schreddo.nerdy.http.request.enums.RequestMethod; +import io.github.schreddo.nerdy.http.request.models.Response; + +public class EditUserOnWorkspaceRequest extends ClickUpRequest { + + private String teamID; + private Long userID; + private String username; + private Boolean asAdmin; + + public String getTeamID() { + return teamID; + } + public void setTeamID(String teamID) { + this.teamID = teamID; + } + public Long getUserID() { + return userID; + } + public void setUserID(Long userID) { + this.userID = userID; + } + public String getUsername() { + return username; + } + public void setUsername(String username) { + this.username = username; + } + public Boolean getAsAdmin() { + return asAdmin; + } + public void setAsAdmin(Boolean asAdmin) { + this.asAdmin = asAdmin; + } + + public EditUserOnWorkspaceRequest(String accessToken, String teamID, Long userID, String username, Boolean asAdmin) { + super(accessToken); + + setTeamID(accessToken); + setUserID(userID); + setUsername(username); + setAsAdmin(asAdmin); + } + + @Override + public CUMemberResponse execute() { + Gson gson = new Gson(); + HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/team/" + getTeamID() + "/user/" + getUserID(), RequestMethod.PUT); + httpRequest.addHeaderProperty("Authorization", getAccessToken()); + httpRequest.addHeaderProperty("Content-Type", "application/json"); + + CUUser user = new CUUser(); + user.setUsername(getUsername()); + user.setAsAdmin(getAsAdmin()); + + httpRequest.addPayload(gson.toJson(user)); + + Response response = httpRequest.executeRequest(); + + return new CUMemberResponse(response.getResponseCode(), response.getResponse()); + } + +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/users/GetUserRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/users/GetUserRequest.java new file mode 100644 index 0000000..0c5f217 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/users/GetUserRequest.java @@ -0,0 +1,69 @@ +// Copyright (C) 2019-2022 Sebastian Lühnen +// +// +// This file is part of ClickUp-Java. +// +// ClickUp-Java is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ClickUp-Java is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with ClickUp-Java. If not, see . +// +// +// Created By: Sebastian Lühnen +// Created On: 25.04.2022 +// Last Edited On: 25.04.2022 +// Language: Java +// +package io.github.schreddo.nerdy.clickup.api.requests.users; + +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUMemberResponse; +import io.github.schreddo.nerdy.http.request.HTTPRequest; +import io.github.schreddo.nerdy.http.request.enums.RequestMethod; +import io.github.schreddo.nerdy.http.request.models.Response; + +public class GetUserRequest extends ClickUpRequest { + + private String teamID; + private Long userID; + + public String getTeamID() { + return teamID; + } + public void setTeamID(String teamID) { + this.teamID = teamID; + } + public Long getUserID() { + return userID; + } + public void setUserID(Long userID) { + this.userID = userID; + } + + public GetUserRequest(String accessToken, String teamID, Long userID) { + super(accessToken); + + setTeamID(teamID); + setUserID(userID); + } + + @Override + public CUMemberResponse execute() { + HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/team/" + getTeamID() + "/user/" + getUserID(), RequestMethod.GET); + httpRequest.addHeaderProperty("Authorization", getAccessToken()); + httpRequest.addHeaderProperty("Content-Type", "application/json"); + + Response response = httpRequest.executeRequest(); + + return new CUMemberResponse(response.getResponseCode(), response.getResponse()); + } + +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/users/InviteUserToWorkspaceRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/users/InviteUserToWorkspaceRequest.java new file mode 100644 index 0000000..a8a71d5 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/users/InviteUserToWorkspaceRequest.java @@ -0,0 +1,87 @@ +// Copyright (C) 2019-2022 Sebastian Lühnen +// +// +// This file is part of ClickUp-Java. +// +// ClickUp-Java is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ClickUp-Java is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with ClickUp-Java. If not, see . +// +// +// Created By: Sebastian Lühnen +// Created On: 25.04.2022 +// Last Edited On: 25.04.2022 +// Language: Java +// +package io.github.schreddo.nerdy.clickup.api.requests.users; + +import com.google.gson.Gson; + +import io.github.schreddo.nerdy.clickup.api.models.CUUser; +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUTaskResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUTeamResponse; +import io.github.schreddo.nerdy.http.request.HTTPRequest; +import io.github.schreddo.nerdy.http.request.enums.RequestMethod; +import io.github.schreddo.nerdy.http.request.models.Response; + +public class InviteUserToWorkspaceRequest extends ClickUpRequest { + + private String teamID; + private String email; + private Boolean asAdmin; + + public String getTeamID() { + return teamID; + } + public void setTeamID(String teamID) { + this.teamID = teamID; + } + public String getEmail() { + return email; + } + public void setEmail(String email) { + this.email = email; + } + public Boolean getAsAdmin() { + return asAdmin; + } + public void setAsAdmin(Boolean asAdmin) { + this.asAdmin = asAdmin; + } + + public InviteUserToWorkspaceRequest(String accessToken, String teamID, String email, Boolean asAdmin) { + super(accessToken); + + setTeamID(accessToken); + setEmail(accessToken); + setAsAdmin(asAdmin); + } + + @Override + public CUTeamResponse execute() { + Gson gson = new Gson(); + HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/team/" + getTeamID() + "/user", RequestMethod.POST); + httpRequest.addHeaderProperty("Authorization", getAccessToken()); + httpRequest.addHeaderProperty("Content-Type", "application/json"); + + CUUser user = new CUUser(); + user.setEmail(getEmail()); + user.setAsAdmin(getAsAdmin()); + httpRequest.addPayload(gson.toJson(user)); + + Response response = httpRequest.executeRequest(); + + return new CUTeamResponse(response.getResponseCode(), response.getResponse()); + } + +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/users/RemoveUserFromWorkspaceRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/users/RemoveUserFromWorkspaceRequest.java new file mode 100644 index 0000000..bc5e21a --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/users/RemoveUserFromWorkspaceRequest.java @@ -0,0 +1,69 @@ +// Copyright (C) 2019-2022 Sebastian Lühnen +// +// +// This file is part of ClickUp-Java. +// +// ClickUp-Java is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ClickUp-Java is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with ClickUp-Java. If not, see . +// +// +// Created By: Sebastian Lühnen +// Created On: 25.04.2022 +// Last Edited On: 25.04.2022 +// Language: Java +// +package io.github.schreddo.nerdy.clickup.api.requests.users; + +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUTeamResponse; +import io.github.schreddo.nerdy.http.request.HTTPRequest; +import io.github.schreddo.nerdy.http.request.enums.RequestMethod; +import io.github.schreddo.nerdy.http.request.models.Response; + +public class RemoveUserFromWorkspaceRequest extends ClickUpRequest { + + private String teamID; + private Long userID; + + public String getTeamID() { + return teamID; + } + public void setTeamID(String teamID) { + this.teamID = teamID; + } + public Long getUserID() { + return userID; + } + public void setUserID(Long userID) { + this.userID = userID; + } + + public RemoveUserFromWorkspaceRequest(String accessToken, String teamID, Long userID) { + super(accessToken); + + setTeamID(teamID); + setUserID(userID); + } + + @Override + public CUTeamResponse execute() { + HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/team/" + getTeamID() + "/user/" + getUserID(), RequestMethod.DELETE); + httpRequest.addHeaderProperty("Authorization", getAccessToken()); + httpRequest.addHeaderProperty("Content-Type", "application/json"); + + Response response = httpRequest.executeRequest(); + + return new CUTeamResponse(response.getResponseCode(), response.getResponse()); + } + +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUMemberResponse.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUMemberResponse.java new file mode 100644 index 0000000..173b4e2 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUMemberResponse.java @@ -0,0 +1,21 @@ +package io.github.schreddo.nerdy.clickup.api.response; + +import com.google.gson.Gson; + +import io.github.schreddo.nerdy.clickup.api.models.CUMember; +import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; + +public class CUMemberResponse extends ClickUpResponse { + + public CUMemberResponse(int responseCode, String json) { + super(responseCode, json); + } + + @Override + public CUMember obj() { + Gson gson = new Gson(); + + return gson.fromJson(getJson(), BaseCollection.class).getMember(); + } + +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTeamResponse.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTeamResponse.java new file mode 100644 index 0000000..c404bec --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTeamResponse.java @@ -0,0 +1,21 @@ +package io.github.schreddo.nerdy.clickup.api.response; + +import com.google.gson.Gson; + +import io.github.schreddo.nerdy.clickup.api.models.CUTeam; +import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; + +public class CUTeamResponse extends ClickUpResponse { + + public CUTeamResponse(int responseCode, String json) { + super(responseCode, json); + } + + @Override + public CUTeam obj() { + Gson gson = new Gson(); + + return gson.fromJson(getJson(), BaseCollection.class).getTeam(); + } + +} From aeb8a38890c29f08be89ceb9902e282b5b093535 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20L=C3=BChnen?= Date: Mon, 25 Apr 2022 21:02:29 +0200 Subject: [PATCH 12/16] rework 'get teams' method return type --- .../schreddo/nerdy/clickup/api/ClickUp.java | 3 ++- .../api/requests/teams/GetTeamsRequest.java | 12 ++++------ .../clickup/api/response/CUTeamsResponse.java | 23 +++++++++++++++++++ 3 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTeamsResponse.java diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java index 2dc49bd..6b239a4 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java @@ -70,6 +70,7 @@ import io.github.schreddo.nerdy.clickup.api.response.CUTaskResponse; import io.github.schreddo.nerdy.clickup.api.response.CUTasksResponse; import io.github.schreddo.nerdy.clickup.api.response.CUTeamResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUTeamsResponse; public class ClickUp { private String accessToken; @@ -109,7 +110,7 @@ public ClickUpResponse getAuthorizedTeams() { return new GetAuthorizedTeamsRequest(getAccessToken()).execute(); } - public ClickUpResponse getTeams() { + public CUTeamsResponse getTeams() { return new GetTeamsRequest(getAccessToken()).execute(); } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/teams/GetTeamsRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/teams/GetTeamsRequest.java index 51b16d6..e91246a 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/teams/GetTeamsRequest.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/teams/GetTeamsRequest.java @@ -1,4 +1,4 @@ -// Copyright (C) 2019 Sebastian Lühnen +// Copyright (C) 2019-2022 Sebastian Lühnen // // // This file is part of ClickUp-Java. @@ -19,14 +19,12 @@ // // Created By: Sebastian Lühnen // Created On: 14.09.2019 -// Last Edited On: 19.10.2019 +// Last Edited On: 25.04.2022 // Language: Java // package io.github.schreddo.nerdy.clickup.api.requests.teams; -import io.github.schreddo.nerdy.clickup.api.enums.ResponsesType; -import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; -import io.github.schreddo.nerdy.clickup.api.response.ClickUpResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUTeamsResponse; import io.github.schreddo.nerdy.http.request.HTTPRequest; import io.github.schreddo.nerdy.http.request.enums.RequestMethod; import io.github.schreddo.nerdy.http.request.models.Response; @@ -45,12 +43,12 @@ public GetTeamsRequest(String accessToken) { setAccessToken(accessToken); } - public ClickUpResponse execute() { + public CUTeamsResponse execute() { HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/team", RequestMethod.GET); httpRequest.addHeaderProperty("Authorization", getAccessToken()); Response response = httpRequest.executeRequest(); - return new ClickUpResponse(BaseCollection.class, response.getResponseCode(), response.getResponse(), ResponsesType.TEAMS_BC); + return new CUTeamsResponse(response.getResponseCode(), response.getResponse()); } } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTeamsResponse.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTeamsResponse.java new file mode 100644 index 0000000..ca120db --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTeamsResponse.java @@ -0,0 +1,23 @@ +package io.github.schreddo.nerdy.clickup.api.response; + +import java.util.ArrayList; + +import com.google.gson.Gson; + +import io.github.schreddo.nerdy.clickup.api.models.CUTeam; +import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; + +public class CUTeamsResponse extends ClickUpResponse { + + public CUTeamsResponse(int responseCode, String json) { + super(responseCode, json); + } + + @Override + public ArrayList obj() { + Gson gson = new Gson(); + + return gson.fromJson(getJson(), BaseCollection.class).getTeams(); + } + +} From 55591b142a20d9354f48bacbdd99c67535b09946 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20L=C3=BChnen?= Date: Tue, 26 Apr 2022 21:35:46 +0200 Subject: [PATCH 13/16] add user api calls 'addTagToTask', 'create space tag', 'edit space tag', 'get space tags', 'delete space tag' and 'remove tag from task' --- .../schreddo/nerdy/clickup/api/ClickUp.java | 34 ++++++++++ .../requests/tags/AddTagToTaskRequest.java | 59 ++++++++++++++++++ .../requests/tags/CreateSpaceTagRequest.java | 54 ++++++++++++++++ .../requests/tags/DeleteSpaceTagRequest.java | 54 ++++++++++++++++ .../requests/tags/EditSpaceTagRequest.java | 45 ++++++++++++++ .../requests/tags/GetSpaceTagsRequest.java | 37 +++++++++++ .../tags/RemoveTagFromTaskRequest.java | 62 +++++++++++++++++++ .../clickup/api/response/CUTagResponse.java | 16 +++++ .../clickup/api/response/CUTagsResponse.java | 23 +++++++ 9 files changed, 384 insertions(+) create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/AddTagToTaskRequest.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/CreateSpaceTagRequest.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/DeleteSpaceTagRequest.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/EditSpaceTagRequest.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/GetSpaceTagsRequest.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/RemoveTagFromTaskRequest.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTagResponse.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTagsResponse.java diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java index 6b239a4..616afec 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java @@ -27,6 +27,7 @@ import io.github.schreddo.nerdy.clickup.api.models.CUFolder; import io.github.schreddo.nerdy.clickup.api.models.CUList; import io.github.schreddo.nerdy.clickup.api.models.CUSpace; +import io.github.schreddo.nerdy.clickup.api.models.CUTag; import io.github.schreddo.nerdy.clickup.api.models.CUTask; import io.github.schreddo.nerdy.clickup.api.models.base.Authorization; import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; @@ -54,6 +55,12 @@ import io.github.schreddo.nerdy.clickup.api.requests.spaces.GetSpaceRequest; import io.github.schreddo.nerdy.clickup.api.requests.spaces.GetSpacesRequest; import io.github.schreddo.nerdy.clickup.api.requests.spaces.UpdateSpaceRequest; +import io.github.schreddo.nerdy.clickup.api.requests.tags.AddTagToTaskRequest; +import io.github.schreddo.nerdy.clickup.api.requests.tags.CreateSpaceTagRequest; +import io.github.schreddo.nerdy.clickup.api.requests.tags.DeleteSpaceTagRequest; +import io.github.schreddo.nerdy.clickup.api.requests.tags.EditSpaceTagRequest; +import io.github.schreddo.nerdy.clickup.api.requests.tags.GetSpaceTagsRequest; +import io.github.schreddo.nerdy.clickup.api.requests.tags.RemoveTagFromTaskRequest; import io.github.schreddo.nerdy.clickup.api.requests.tasks.CreateTaskRequest; import io.github.schreddo.nerdy.clickup.api.requests.tasks.DeleteTaskRequest; import io.github.schreddo.nerdy.clickup.api.requests.tasks.GetFilteredTeamTasksRequest; @@ -66,7 +73,10 @@ import io.github.schreddo.nerdy.clickup.api.requests.users.InviteUserToWorkspaceRequest; import io.github.schreddo.nerdy.clickup.api.requests.users.RemoveUserFromWorkspaceRequest; import io.github.schreddo.nerdy.clickup.api.response.CUDeleteResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUEmptyResponse; import io.github.schreddo.nerdy.clickup.api.response.CUMemberResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUTagResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUTagsResponse; import io.github.schreddo.nerdy.clickup.api.response.CUTaskResponse; import io.github.schreddo.nerdy.clickup.api.response.CUTasksResponse; import io.github.schreddo.nerdy.clickup.api.response.CUTeamResponse; @@ -252,4 +262,28 @@ public CUTeamResponse removeUserFromWorkspace(String teamID, Long userID) { public CUMemberResponse getUser(String teamID, Long userID) { return new GetUserRequest(getAccessToken(), teamID, userID).execute(); } + + public CUEmptyResponse addTagToTask(String taskID, String tagName) { + return new AddTagToTaskRequest(getAccessToken(), taskID, tagName).execute(); + } + + public CUEmptyResponse createSpaceTag(String spaceID, CUTag tag) { + return new CreateSpaceTagRequest(getAccessToken(), spaceID, tag).execute(); + } + + public CUTagResponse editSpaceTag(String spaceID, String tagName) { + return new EditSpaceTagRequest(getAccessToken(), spaceID, tagName).execute(); + } + + public CUTagsResponse getSpaceTags(String spaceID) { + return new GetSpaceTagsRequest(getAccessToken(), spaceID).execute(); + } + + public CUDeleteResponse deleteSpaceTag(String spaceID, CUTag tag) { + return new DeleteSpaceTagRequest(getAccessToken(), spaceID, tag).execute(); + } + + public CUDeleteResponse removeTagFromTask(String taskID, String tagName) { + return new RemoveTagFromTaskRequest(getAccessToken(), taskID, tagName).execute(); + } } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/AddTagToTaskRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/AddTagToTaskRequest.java new file mode 100644 index 0000000..3047e58 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/AddTagToTaskRequest.java @@ -0,0 +1,59 @@ +package io.github.schreddo.nerdy.clickup.api.requests.tags; + +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUEmptyResponse; +import io.github.schreddo.nerdy.http.request.HTTPRequest; +import io.github.schreddo.nerdy.http.request.enums.RequestMethod; +import io.github.schreddo.nerdy.http.request.models.Response; + +public class AddTagToTaskRequest extends ClickUpRequest { + + private String taskID; + private String tagName; + private Boolean customTaskIDs; + private String teamID; + + public String getTaskID() { + return taskID; + } + public void setTaskID(String taskID) { + this.taskID = taskID; + } + public String getTagName() { + return tagName; + } + public void setTagName(String tagName) { + this.tagName = tagName; + } + public Boolean getCustomTaskIDs() { + return customTaskIDs; + } + public void setCustomTaskIDs(Boolean customTaskIDs) { + this.customTaskIDs = customTaskIDs; + } + public String getTeamID() { + return teamID; + } + public void setTeamID(String teamID) { + this.teamID = teamID; + } + + public AddTagToTaskRequest(String accessToken, String taskID, String tagName) { + super(accessToken); + } + + @Override + public CUEmptyResponse execute() { + HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/task/" + getTaskID() + "/tag/" + getTagName(), RequestMethod.POST); + httpRequest.addHeaderProperty("Authorization", getAccessToken()); + httpRequest.addHeaderProperty("Content-Type", "application/json"); + + if (getCustomTaskIDs()) httpRequest.addURLParamenter("custom_task_ids", "true"); + if (getTeamID() != null) httpRequest.addURLParamenter("team_id", getTeamID()); + + Response response = httpRequest.executeRequest(); + + return new CUEmptyResponse(response.getResponseCode(), response.getResponse()); + } + +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/CreateSpaceTagRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/CreateSpaceTagRequest.java new file mode 100644 index 0000000..15fc787 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/CreateSpaceTagRequest.java @@ -0,0 +1,54 @@ +package io.github.schreddo.nerdy.clickup.api.requests.tags; + +import com.google.gson.Gson; + +import io.github.schreddo.nerdy.clickup.api.models.CUTag; +import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUEmptyResponse; +import io.github.schreddo.nerdy.http.request.HTTPRequest; +import io.github.schreddo.nerdy.http.request.enums.RequestMethod; +import io.github.schreddo.nerdy.http.request.models.Response; + +public class CreateSpaceTagRequest extends ClickUpRequest { + + private String spaceID; + private CUTag tag; + + public String getSpaceID() { + return spaceID; + } + public void setSpaceID(String spaceID) { + this.spaceID = spaceID; + } + public CUTag getTag() { + return tag; + } + public void setTag(CUTag tag) { + this.tag = tag; + } + + public CreateSpaceTagRequest(String accessToken, String spaceID, CUTag tag) { + super(accessToken); + + setSpaceID(spaceID); + setTag(tag); + } + + @Override + public CUEmptyResponse execute() { + Gson gson = new Gson(); + BaseCollection baseCollection = new BaseCollection(); + baseCollection.setTag(getTag()); + + HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/space/" + getSpaceID() + "/tag", RequestMethod.POST); + httpRequest.addHeaderProperty("Authorization", getAccessToken()); + httpRequest.addHeaderProperty("Content-Type", "application/json"); + httpRequest.addPayload(gson.toJson(baseCollection)); + + Response response = httpRequest.executeRequest(); + + return new CUEmptyResponse(response.getResponseCode(), response.getResponse()); + } + +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/DeleteSpaceTagRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/DeleteSpaceTagRequest.java new file mode 100644 index 0000000..a4ffa8a --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/DeleteSpaceTagRequest.java @@ -0,0 +1,54 @@ +package io.github.schreddo.nerdy.clickup.api.requests.tags; + +import com.google.gson.Gson; + +import io.github.schreddo.nerdy.clickup.api.models.CUTag; +import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUDeleteResponse; +import io.github.schreddo.nerdy.http.request.HTTPRequest; +import io.github.schreddo.nerdy.http.request.enums.RequestMethod; +import io.github.schreddo.nerdy.http.request.models.Response; + +public class DeleteSpaceTagRequest extends ClickUpRequest { + + private String spaceID; + private CUTag tag; + + public String getSpaceID() { + return spaceID; + } + public void setSpaceID(String spaceID) { + this.spaceID = spaceID; + } + public CUTag getTag() { + return tag; + } + public void setTag(CUTag tag) { + this.tag = tag; + } + + public DeleteSpaceTagRequest(String accessToken, String spaceID, CUTag tag) { + super(accessToken); + + setSpaceID(spaceID); + setTag(tag); + } + + @Override + public CUDeleteResponse execute() { + Gson gson = new Gson(); + BaseCollection baseCollection = new BaseCollection(); + baseCollection.setTag(getTag()); + + HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/space/" + getSpaceID() + "/tag/" + getTag().getName(), RequestMethod.DELETE); + httpRequest.addHeaderProperty("Authorization", getAccessToken()); + httpRequest.addHeaderProperty("Content-Type", "application/json"); + httpRequest.addPayload(gson.toJson(baseCollection)); + + Response response = httpRequest.executeRequest(); + + return new CUDeleteResponse(response.getResponseCode(), response.getResponse()); + } + +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/EditSpaceTagRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/EditSpaceTagRequest.java new file mode 100644 index 0000000..0ab4901 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/EditSpaceTagRequest.java @@ -0,0 +1,45 @@ +package io.github.schreddo.nerdy.clickup.api.requests.tags; + +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUTagResponse; +import io.github.schreddo.nerdy.http.request.HTTPRequest; +import io.github.schreddo.nerdy.http.request.enums.RequestMethod; +import io.github.schreddo.nerdy.http.request.models.Response; + +public class EditSpaceTagRequest extends ClickUpRequest { + + private String spaceID; + private String tagName; + + public String getSpaceID() { + return spaceID; + } + public void setSpaceID(String spaceID) { + this.spaceID = spaceID; + } + public String getTagName() { + return tagName; + } + public void setTagName(String tagName) { + this.tagName = tagName; + } + + public EditSpaceTagRequest(String accessToken, String spaceID, String tagName) { + super(accessToken); + + setSpaceID(spaceID); + setTagName(tagName); + } + + @Override + public CUTagResponse execute() { + HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/space/" + getSpaceID() + "/tag/" + getTagName(), RequestMethod.PUT); + httpRequest.addHeaderProperty("Authorization", getAccessToken()); + httpRequest.addHeaderProperty("Content-Type", "application/json"); + + Response response = httpRequest.executeRequest(); + + return new CUTagResponse(response.getResponseCode(), response.getResponse()); + } + +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/GetSpaceTagsRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/GetSpaceTagsRequest.java new file mode 100644 index 0000000..cfd4f48 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/GetSpaceTagsRequest.java @@ -0,0 +1,37 @@ +package io.github.schreddo.nerdy.clickup.api.requests.tags; + +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUTagsResponse; +import io.github.schreddo.nerdy.http.request.HTTPRequest; +import io.github.schreddo.nerdy.http.request.enums.RequestMethod; +import io.github.schreddo.nerdy.http.request.models.Response; + +public class GetSpaceTagsRequest extends ClickUpRequest { + + public String spaceID; + + public String getSpaceID() { + return spaceID; + } + public void setSpaceID(String spaceID) { + this.spaceID = spaceID; + } + + public GetSpaceTagsRequest(String accessToken, String spaceID) { + super(accessToken); + + setSpaceID(spaceID); + } + + @Override + public CUTagsResponse execute() { + HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/space/" + getSpaceID() + "/tag", RequestMethod.GET); + httpRequest.addHeaderProperty("Authorization", getAccessToken()); + httpRequest.addHeaderProperty("Content-Type", "application/json"); + + Response response = httpRequest.executeRequest(); + + return new CUTagsResponse(response.getResponseCode(), response.getResponse()); + } + +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/RemoveTagFromTaskRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/RemoveTagFromTaskRequest.java new file mode 100644 index 0000000..bb116ac --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/tags/RemoveTagFromTaskRequest.java @@ -0,0 +1,62 @@ +package io.github.schreddo.nerdy.clickup.api.requests.tags; + +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUDeleteResponse; +import io.github.schreddo.nerdy.http.request.HTTPRequest; +import io.github.schreddo.nerdy.http.request.enums.RequestMethod; +import io.github.schreddo.nerdy.http.request.models.Response; + +public class RemoveTagFromTaskRequest extends ClickUpRequest { + + private String taskID; + private String tagName; + private Boolean customTaskIDs; + private String teamID; + + public String getTaskID() { + return taskID; + } + public void setTaskID(String taskID) { + this.taskID = taskID; + } + public String getTagName() { + return tagName; + } + public void setTagName(String tagName) { + this.tagName = tagName; + } + public Boolean getCustomTaskIDs() { + return customTaskIDs; + } + public void setCustomTaskIDs(Boolean customTaskIDs) { + this.customTaskIDs = customTaskIDs; + } + public String getTeamID() { + return teamID; + } + public void setTeamID(String teamID) { + this.teamID = teamID; + } + + public RemoveTagFromTaskRequest(String accessToken, String taskID, String tagName) { + super(accessToken); + + setTaskID(taskID); + setTagName(tagName); + } + + @Override + public CUDeleteResponse execute() { + HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/task/" + getTaskID() + "/tag/" + getTagName(), RequestMethod.DELETE); + httpRequest.addHeaderProperty("Authorization", getAccessToken()); + httpRequest.addHeaderProperty("Content-Type", "application/json"); + + if (getCustomTaskIDs()) httpRequest.addURLParamenter("custom_task_ids", "true"); + if (getTeamID() != null) httpRequest.addURLParamenter("team_id", getTeamID()); + + Response response = httpRequest.executeRequest(); + + return new CUDeleteResponse(response.getResponseCode(), response.getResponse()); + } + +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTagResponse.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTagResponse.java new file mode 100644 index 0000000..6192b72 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTagResponse.java @@ -0,0 +1,16 @@ +package io.github.schreddo.nerdy.clickup.api.response; + +import io.github.schreddo.nerdy.clickup.api.models.CUTag; + +public class CUTagResponse extends ClickUpResponse { + + public CUTagResponse(int responseCode, String json) { + super(responseCode, json); + } + + @Override + public CUTag obj() { + return null; + } + +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTagsResponse.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTagsResponse.java new file mode 100644 index 0000000..6ab447b --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUTagsResponse.java @@ -0,0 +1,23 @@ +package io.github.schreddo.nerdy.clickup.api.response; + +import java.util.ArrayList; + +import com.google.gson.Gson; + +import io.github.schreddo.nerdy.clickup.api.models.CUTag; +import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; + +public class CUTagsResponse extends ClickUpResponse { + + public CUTagsResponse(int responseCode, String json) { + super(responseCode, json); + } + + @Override + public ArrayList obj() { + Gson gson = new Gson(); + + return gson.fromJson(getJson(), BaseCollection.class).getTags(); + } + +} From 356158aee8e31a87d96d49e51ae39c0d626b90da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20L=C3=BChnen?= Date: Tue, 26 Apr 2022 21:48:14 +0200 Subject: [PATCH 14/16] add user api calls 'add task to list' and 'remove task from list' --- .../schreddo/nerdy/clickup/api/ClickUp.java | 10 +++++ .../requests/lists/AddTaskToListRequest.java | 45 +++++++++++++++++++ .../requests/lists/RemoveTaskFromList.java | 42 +++++++++++++++++ .../clickup/api/response/CUEmptyResponse.java | 14 ++++++ 4 files changed, 111 insertions(+) create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/lists/AddTaskToListRequest.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/lists/RemoveTaskFromList.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUEmptyResponse.java diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java index 616afec..dee11ea 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java @@ -41,12 +41,14 @@ import io.github.schreddo.nerdy.clickup.api.requests.folders.GetFolderRequest; import io.github.schreddo.nerdy.clickup.api.requests.folders.GetFoldersRequest; import io.github.schreddo.nerdy.clickup.api.requests.folders.UpdateFolderRequest; +import io.github.schreddo.nerdy.clickup.api.requests.lists.AddTaskToListRequest; import io.github.schreddo.nerdy.clickup.api.requests.lists.CreateFolderlessListRequest; import io.github.schreddo.nerdy.clickup.api.requests.lists.CreateListRequest; import io.github.schreddo.nerdy.clickup.api.requests.lists.DeleteListRequest; import io.github.schreddo.nerdy.clickup.api.requests.lists.GetFolderlessListsRequest; import io.github.schreddo.nerdy.clickup.api.requests.lists.GetListRequest; import io.github.schreddo.nerdy.clickup.api.requests.lists.GetListsRequest; +import io.github.schreddo.nerdy.clickup.api.requests.lists.RemoveTaskFromList; import io.github.schreddo.nerdy.clickup.api.requests.lists.UpdateListRequest; import io.github.schreddo.nerdy.clickup.api.requests.members.GetListMembersRequest; import io.github.schreddo.nerdy.clickup.api.requests.members.GetTaskMembersRequest; @@ -210,6 +212,14 @@ public ClickUpResponse getList(Long listID) { return new GetListRequest(getAccessToken(), listID).execute(); } + public CUEmptyResponse addTaskToList(String listID, String taskID) { + return new AddTaskToListRequest(getAccessToken(), listID, taskID).execute(); + } + + public CUDeleteResponse removeTaskFromList(String listID, String taskID) { + return new RemoveTaskFromList(getAccessToken(), listID, taskID).execute(); + } + public CUTaskResponse createTask(Long listID, CUTask task) { return new CreateTaskRequest(getAccessToken(), listID, task).execute(); } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/lists/AddTaskToListRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/lists/AddTaskToListRequest.java new file mode 100644 index 0000000..49bd7d9 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/lists/AddTaskToListRequest.java @@ -0,0 +1,45 @@ +package io.github.schreddo.nerdy.clickup.api.requests.lists; + +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUEmptyResponse; +import io.github.schreddo.nerdy.http.request.HTTPRequest; +import io.github.schreddo.nerdy.http.request.enums.RequestMethod; +import io.github.schreddo.nerdy.http.request.models.Response; + +public class AddTaskToListRequest extends ClickUpRequest { + + private String listID; + private String taskID; + + public String getListID() { + return this.listID; + } + public void setListID(String listID) { + this.listID = listID; + } + public String getTaskID() { + return this.taskID; + } + public void setTaskID(String taskID) { + this.taskID = taskID; + } + + public AddTaskToListRequest(String accessToken, String listID, String teamID) { + super(accessToken); + + setListID(listID); + setTaskID(teamID); + } + + @Override + public CUEmptyResponse execute() { + HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/list/" + getListID() + "/task/" + getTaskID(), RequestMethod.PUT); + httpRequest.addHeaderProperty("Authorization", getAccessToken()); + httpRequest.addHeaderProperty("Content-Type", "application/json"); + + Response response = httpRequest.executeRequest(); + + return new CUEmptyResponse(response.getResponseCode(), response.getResponse()); + } + +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/lists/RemoveTaskFromList.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/lists/RemoveTaskFromList.java new file mode 100644 index 0000000..eb75a32 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/lists/RemoveTaskFromList.java @@ -0,0 +1,42 @@ +package io.github.schreddo.nerdy.clickup.api.requests.lists; + +import io.github.schreddo.nerdy.clickup.api.requests.ClickUpRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUDeleteResponse; +import io.github.schreddo.nerdy.http.request.HTTPRequest; +import io.github.schreddo.nerdy.http.request.enums.RequestMethod; +import io.github.schreddo.nerdy.http.request.models.Response; + +public class RemoveTaskFromList extends ClickUpRequest { + + private String listID; + private String taskID; + + public String getListID() { + return listID; + } + public void setListID(String listID) { + this.listID = listID; + } + public String getTaskID() { + return taskID; + } + public void setTaskID(String taskID) { + this.taskID = taskID; + } + + public RemoveTaskFromList(String accessToken, String listID, String taskID) { + super(accessToken); + } + + @Override + public CUDeleteResponse execute() { + HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/list/" + getListID() + "/task/" + getTaskID(), RequestMethod.DELETE); + httpRequest.addHeaderProperty("Authorization", getAccessToken()); + httpRequest.addHeaderProperty("Content-Type", "application/json"); + + Response response = httpRequest.executeRequest(); + + return new CUDeleteResponse(response.getResponseCode(), response.getResponse()); + } + +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUEmptyResponse.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUEmptyResponse.java new file mode 100644 index 0000000..b8de110 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUEmptyResponse.java @@ -0,0 +1,14 @@ +package io.github.schreddo.nerdy.clickup.api.response; + +public class CUEmptyResponse extends ClickUpResponse { + + public CUEmptyResponse(int responseCode, String json) { + super(responseCode, json); + } + + @Override + public Object obj() { + return null; + } + +} From 70146e2e046624d07eca4f44680e569ebae73e39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20L=C3=BChnen?= Date: Tue, 26 Apr 2022 21:49:54 +0200 Subject: [PATCH 15/16] rework 'get task members' and 'get list members' methods return type --- .../schreddo/nerdy/clickup/api/ClickUp.java | 6 +- .../nerdy/clickup/api/models/CUUser.java | 95 +++++++++++++++++++ .../api/models/base/BaseCollection.java | 12 +-- .../members/GetListMembersRequest.java | 12 +-- .../members/GetTaskMembersRequest.java | 12 +-- .../clickup/api/response/CUUserResponse.java | 21 ++++ .../clickup/api/response/CUUsersResponse.java | 23 +++++ 7 files changed, 159 insertions(+), 22 deletions(-) create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/CUUser.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUUserResponse.java create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUUsersResponse.java diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java index dee11ea..019fbaa 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java @@ -83,6 +83,8 @@ import io.github.schreddo.nerdy.clickup.api.response.CUTasksResponse; import io.github.schreddo.nerdy.clickup.api.response.CUTeamResponse; import io.github.schreddo.nerdy.clickup.api.response.CUTeamsResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUUserResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUUsersResponse; public class ClickUp { private String accessToken; @@ -249,11 +251,11 @@ public CUTasksResponse getFilteredTeamTasks(Long teamID, CUTeamTaskFilterOptions return new GetFilteredTeamTasksRequest(getAccessToken(), teamID, filterOptions).execute(); } - public ClickUpResponseOld getListMembers(Long listID) { + public CUUsersResponse getListMembers(Long listID) { return new GetListMembersRequest(getAccessToken(), listID).execute(); } - public ClickUpResponse getTaskMembers(String taskID) { + public CUUsersResponse getTaskMembers(String taskID) { return new GetTaskMembersRequest(getAccessToken(), taskID).execute(); } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/CUUser.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/CUUser.java new file mode 100644 index 0000000..41f6952 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/CUUser.java @@ -0,0 +1,95 @@ +package io.github.schreddo.nerdy.clickup.api.models; + +import com.google.gson.annotations.SerializedName; + +import io.github.schreddo.nerdy.clickup.api.enums.UserRole; +import io.github.schreddo.nerdy.clickup.api.enums.WeekStartDay; + +public class CUUser { + + @SerializedName("id") + private Long id; + @SerializedName("username") + private String username; + @SerializedName("email") + private String email; + @SerializedName("color") + private String color; + @SerializedName("profilePicture") + private String profilePicture; + @SerializedName("initials") + private String initials; + @SerializedName("role") + private Integer role; + @SerializedName("week_start_day") + private Integer weekStartDay; + @SerializedName("global_font_support") + private Boolean globalFontSupport; + @SerializedName("admin") + private Boolean asAdmin; + + public Long getID() { + return id; + } + public void setID(Long id) { + this.id = id; + } + public String getUsername() { + return username; + } + public void setUsername(String username) { + this.username = username; + } + public String getEmail() { + return email; + } + public void setEmail(String email) { + this.email = email; + } + public String getColor() { + return color; + } + public void setColor(String color) { + this.color = color; + } + public String getProfilePicture() { + return profilePicture; + } + public void setProfilePicture(String profilePicture) { + this.profilePicture = profilePicture; + } + public String getInitials() { + return initials; + } + public void setInitials(String initials) { + this.initials = initials; + } + public UserRole getRole() { + return UserRole.valueOf(this.role); + } + public void setRole(UserRole role) { + this.role = role.value(); + } + public WeekStartDay getWeekStartDay() { + return WeekStartDay.valueOf(this.weekStartDay); + } + public void setWeekStartDay(WeekStartDay weekStartDay) { + this.weekStartDay = weekStartDay.value(); + } + public Boolean getGlobalFontSupport() { + return globalFontSupport; + } + public void setGlobalFontSupport(Boolean globalFontSupport) { + this.globalFontSupport = globalFontSupport; + } + public Boolean getAsAdmin() { + return asAdmin; + } + public void setAsAdmin(Boolean asAdmin) { + this.asAdmin = asAdmin; + } + + public CUUser() { + + } +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/base/BaseCollection.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/base/BaseCollection.java index 602e406..014fb91 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/base/BaseCollection.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/models/base/BaseCollection.java @@ -73,7 +73,7 @@ public class BaseCollection { @SerializedName("member") private CUMember member; @SerializedName("members") - private ArrayList members; + private ArrayList users; @SerializedName("shared") private Object shared; @SerializedName("spaces") @@ -169,16 +169,16 @@ public void setLists(ArrayList lists) { this.lists = lists; } public CUMember getMember() { - return member; + return this.member; } public void setMember(CUMember member) { this.member = member; } - public ArrayList getMembers() { - return members; + public ArrayList getUsers() { + return this.users; } - public void setMembers(ArrayList members) { - this.members = members; + public void setUsers(ArrayList users) { + this.users = users; } public Object getShared() { return shared; diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/members/GetListMembersRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/members/GetListMembersRequest.java index ebedd7e..f523253 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/members/GetListMembersRequest.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/members/GetListMembersRequest.java @@ -1,4 +1,4 @@ -// Copyright (C) 2019 Sebastian Lühnen +// Copyright (C) 2019-2022 Sebastian Lühnen // // // This file is part of ClickUp-Java. @@ -19,14 +19,12 @@ // // Created By: Sebastian Lühnen // Created On: 14.09.2019 -// Last Edited On: 19.10.2019 +// Last Edited On: 26.04.2022 // Language: Java // package io.github.schreddo.nerdy.clickup.api.requests.members; -import io.github.schreddo.nerdy.clickup.api.enums.ResponsesType; -import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; -import io.github.schreddo.nerdy.clickup.api.response.ClickUpResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUUsersResponse; import io.github.schreddo.nerdy.http.request.HTTPRequest; import io.github.schreddo.nerdy.http.request.enums.RequestMethod; import io.github.schreddo.nerdy.http.request.models.Response; @@ -53,13 +51,13 @@ public GetListMembersRequest(String accessToken, Long listID) { setListID(listID); } - public ClickUpResponse execute() { + public CUUsersResponse execute() { HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/list/" + getListID() + "/member", RequestMethod.GET); httpRequest.addHeaderProperty("Authorization", getAccessToken()); httpRequest.addHeaderProperty("Content-Type", "application/json"); Response response = httpRequest.executeRequest(); - return new ClickUpResponse(BaseCollection.class, response.getResponseCode(), response.getResponse(), ResponsesType.MEMBERS_BC); + return new CUUsersResponse(response.getResponseCode(), response.getResponse()); } } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/members/GetTaskMembersRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/members/GetTaskMembersRequest.java index bfde789..41a896e 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/members/GetTaskMembersRequest.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/members/GetTaskMembersRequest.java @@ -1,4 +1,4 @@ -// Copyright (C) 2019 Sebastian Lühnen +// Copyright (C) 2019-2022 Sebastian Lühnen // // // This file is part of ClickUp-Java. @@ -19,14 +19,12 @@ // // Created By: Sebastian Lühnen // Created On: 14.09.2019 -// Last Edited On: 19.10.2019 +// Last Edited On: 26.04.2022 // Language: Java // package io.github.schreddo.nerdy.clickup.api.requests.members; -import io.github.schreddo.nerdy.clickup.api.enums.ResponsesType; -import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; -import io.github.schreddo.nerdy.clickup.api.response.ClickUpResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUUsersResponse; import io.github.schreddo.nerdy.http.request.HTTPRequest; import io.github.schreddo.nerdy.http.request.enums.RequestMethod; import io.github.schreddo.nerdy.http.request.models.Response; @@ -53,13 +51,13 @@ public GetTaskMembersRequest(String accessToken, String taskID) { setTaskID(taskID); } - public ClickUpResponse execute() { + public CUUsersResponse execute() { HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/task/" + getTaskID() + "/member", RequestMethod.GET); httpRequest.addHeaderProperty("Authorization", getAccessToken()); httpRequest.addHeaderProperty("Content-Type", "application/json"); Response response = httpRequest.executeRequest(); - return new ClickUpResponse(BaseCollection.class, response.getResponseCode(), response.getResponse(), ResponsesType.MEMBERS_BC); + return new CUUsersResponse(response.getResponseCode(), response.getResponse()); } } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUUserResponse.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUUserResponse.java new file mode 100644 index 0000000..fd2b7c5 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUUserResponse.java @@ -0,0 +1,21 @@ +package io.github.schreddo.nerdy.clickup.api.response; + +import com.google.gson.Gson; + +import io.github.schreddo.nerdy.clickup.api.models.CUUser; +import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; + +public class CUUserResponse extends ClickUpResponse { + + public CUUserResponse(int responseCode, String json) { + super(responseCode, json); + } + + @Override + public CUUser obj() { + Gson gson = new Gson(); + + return gson.fromJson(getJson(), BaseCollection.class).getUser(); + } + +} diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUUsersResponse.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUUsersResponse.java new file mode 100644 index 0000000..bcc39df --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUUsersResponse.java @@ -0,0 +1,23 @@ +package io.github.schreddo.nerdy.clickup.api.response; + +import java.util.ArrayList; + +import com.google.gson.Gson; + +import io.github.schreddo.nerdy.clickup.api.models.CUUser; +import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; + +public class CUUsersResponse extends ClickUpResponse { + + public CUUsersResponse(int responseCode, String json) { + super(responseCode, json); + } + + @Override + public ArrayList obj() { + Gson gson = new Gson(); + + return gson.fromJson(getJson(), BaseCollection.class).getUsers(); + } + +} From da4ce70b719eede743424dbb623bd0fdae03ae68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20L=C3=BChnen?= Date: Tue, 26 Apr 2022 21:51:59 +0200 Subject: [PATCH 16/16] rework 'get access token', 'get authorized user' and 'get authorized teams' methods return type --- .../schreddo/nerdy/clickup/api/ClickUp.java | 9 +++++---- .../authorization/AccessTokenRequest.java | 12 +++++------ .../GetAuthorizedTeamsRequest.java | 12 +++++------ .../GetAuthorizedUserRequest.java | 8 +++----- .../api/response/CUAccessTokenResponse.java | 20 +++++++++++++++++++ 5 files changed, 38 insertions(+), 23 deletions(-) create mode 100644 ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUAccessTokenResponse.java diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java index 019fbaa..14aacdd 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/ClickUp.java @@ -74,6 +74,7 @@ import io.github.schreddo.nerdy.clickup.api.requests.users.GetUserRequest; import io.github.schreddo.nerdy.clickup.api.requests.users.InviteUserToWorkspaceRequest; import io.github.schreddo.nerdy.clickup.api.requests.users.RemoveUserFromWorkspaceRequest; +import io.github.schreddo.nerdy.clickup.api.response.CUAccessTokenResponse; import io.github.schreddo.nerdy.clickup.api.response.CUDeleteResponse; import io.github.schreddo.nerdy.clickup.api.response.CUEmptyResponse; import io.github.schreddo.nerdy.clickup.api.response.CUMemberResponse; @@ -105,10 +106,10 @@ public ClickUp(String clientId, String clientSecret, String code) { } public Boolean getAccessToken(String clientId, String clientSecret, String code) { - ClickUpResponse response = new AccessTokenRequest(clientId, clientSecret, code).execute(); + CUAccessTokenResponse response = new AccessTokenRequest(clientId, clientSecret, code).execute(); if (response.code() == 200) { - setAccessToken(((Authorization) response.obj()).getAccessToken()); + setAccessToken(response.obj().getAccessToken()); return true; } else { @@ -116,11 +117,11 @@ public Boolean getAccessToken(String clientId, String clientSecret, String code) } } - public ClickUpResponse getAuthorizedUser() { + public CUUserResponse getAuthorizedUser() { return new GetAuthorizedUserRequest(getAccessToken()).execute(); } - public ClickUpResponse getAuthorizedTeams() { + public CUTeamsResponse getAuthorizedTeams() { return new GetAuthorizedTeamsRequest(getAccessToken()).execute(); } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/authorization/AccessTokenRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/authorization/AccessTokenRequest.java index 13cda09..49ac23d 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/authorization/AccessTokenRequest.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/authorization/AccessTokenRequest.java @@ -1,4 +1,4 @@ -// Copyright (C) 2019 Sebastian Lühnen +// Copyright (C) 2019-2022 Sebastian Lühnen // // // This file is part of ClickUp-Java. @@ -19,14 +19,12 @@ // // Created By: Sebastian Lühnen // Created On: 14.09.2019 -// Last Edited On: 19.10.2019 +// Last Edited On: 26.04.2022 // Language: Java // package io.github.schreddo.nerdy.clickup.api.requests.authorization; -import io.github.schreddo.nerdy.clickup.api.enums.ResponsesType; -import io.github.schreddo.nerdy.clickup.api.models.base.Authorization; -import io.github.schreddo.nerdy.clickup.api.response.ClickUpResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUAccessTokenResponse; import io.github.schreddo.nerdy.http.request.HTTPRequest; import io.github.schreddo.nerdy.http.request.enums.RequestMethod; import io.github.schreddo.nerdy.http.request.models.Response; @@ -61,7 +59,7 @@ public AccessTokenRequest(String clientId, String clientSecret, String code) { setCode(code); } - public ClickUpResponse execute() { + public CUAccessTokenResponse execute() { HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/oauth/token", RequestMethod.POST); httpRequest.addURLParamenter("client_id", getClientId()); httpRequest.addURLParamenter("client_secret", getClientSecret()); @@ -69,6 +67,6 @@ public ClickUpResponse execute() { Response response = httpRequest.executeRequest(); - return new ClickUpResponse(Authorization.class, response.getResponseCode(), response.getResponse(), ResponsesType.OBJECT); + return new CUAccessTokenResponse(response.getResponseCode(), response.getResponse()); } } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/authorization/GetAuthorizedTeamsRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/authorization/GetAuthorizedTeamsRequest.java index 846fa56..487da2c 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/authorization/GetAuthorizedTeamsRequest.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/authorization/GetAuthorizedTeamsRequest.java @@ -1,4 +1,4 @@ -// Copyright (C) 2019 Sebastian Lühnen +// Copyright (C) 2019-2022 Sebastian Lühnen // // // This file is part of ClickUp-Java. @@ -19,14 +19,12 @@ // // Created By: Sebastian Lühnen // Created On: 14.09.2019 -// Last Edited On: 19.10.2019 +// Last Edited On: 26.04.2022 // Language: Java // package io.github.schreddo.nerdy.clickup.api.requests.authorization; -import io.github.schreddo.nerdy.clickup.api.enums.ResponsesType; -import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; -import io.github.schreddo.nerdy.clickup.api.response.ClickUpResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUTeamsResponse; import io.github.schreddo.nerdy.http.request.HTTPRequest; import io.github.schreddo.nerdy.http.request.enums.RequestMethod; import io.github.schreddo.nerdy.http.request.models.Response; @@ -45,12 +43,12 @@ public GetAuthorizedTeamsRequest(String accessToken) { setAccessToken(accessToken); } - public ClickUpResponse execute() { + public CUTeamsResponse execute() { HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/team", RequestMethod.GET); httpRequest.addHeaderProperty("Authorization", getAccessToken()); Response response = httpRequest.executeRequest(); - return new ClickUpResponse(BaseCollection.class, response.getResponseCode(), response.getResponse(), ResponsesType.TEAMS_BC); + return new CUTeamsResponse(response.getResponseCode(), response.getResponse()); } } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/authorization/GetAuthorizedUserRequest.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/authorization/GetAuthorizedUserRequest.java index c79a349..a58290b 100644 --- a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/authorization/GetAuthorizedUserRequest.java +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/requests/authorization/GetAuthorizedUserRequest.java @@ -24,9 +24,7 @@ // package io.github.schreddo.nerdy.clickup.api.requests.authorization; -import io.github.schreddo.nerdy.clickup.api.enums.ResponsesType; -import io.github.schreddo.nerdy.clickup.api.models.base.BaseCollection; -import io.github.schreddo.nerdy.clickup.api.response.ClickUpResponse; +import io.github.schreddo.nerdy.clickup.api.response.CUUserResponse; import io.github.schreddo.nerdy.http.request.HTTPRequest; import io.github.schreddo.nerdy.http.request.enums.RequestMethod; import io.github.schreddo.nerdy.http.request.models.Response; @@ -45,12 +43,12 @@ public GetAuthorizedUserRequest(String accessToken) { setAccessToken(accessToken); } - public ClickUpResponse execute() { + public CUUserResponse execute() { HTTPRequest httpRequest = new HTTPRequest("https://api.clickup.com/api/v2/user", RequestMethod.GET); httpRequest.addHeaderProperty("Authorization", getAccessToken()); Response response = httpRequest.executeRequest(); - return new ClickUpResponse(BaseCollection.class, response.getResponseCode(), response.getResponse(), ResponsesType.USER_BC); + return new CUUserResponse(response.getResponseCode(), response.getResponse()); } } diff --git a/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUAccessTokenResponse.java b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUAccessTokenResponse.java new file mode 100644 index 0000000..0ceeaf7 --- /dev/null +++ b/ClickUp-Java/src/main/java/io/github/schreddo/nerdy/clickup/api/response/CUAccessTokenResponse.java @@ -0,0 +1,20 @@ +package io.github.schreddo.nerdy.clickup.api.response; + +import com.google.gson.Gson; + +import io.github.schreddo.nerdy.clickup.api.models.base.Authorization; + +public class CUAccessTokenResponse extends ClickUpResponse { + + public CUAccessTokenResponse(int responseCode, String json) { + super(responseCode, json); + } + + @Override + public Authorization obj() { + Gson gson = new Gson(); + + return gson.fromJson(getJson(), Authorization.class); + } + +}