From 11e95ea226876c9a8d6c7292f5740c146d74fb0f Mon Sep 17 00:00:00 2001 From: Jefferson Fausto Vaz Date: Wed, 9 May 2018 15:12:19 -0300 Subject: [PATCH 01/12] Creating the files needed to add the Personal Snippets api --- src/main/java/org/gitlab4j/api/GitLabApi.java | 19 +++++++ .../org/gitlab4j/api/PersonalSnippetApi.java | 10 ++++ .../gitlab4j/api/TestPersonalSnippetApi.java | 54 +++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 src/main/java/org/gitlab4j/api/PersonalSnippetApi.java create mode 100644 src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java diff --git a/src/main/java/org/gitlab4j/api/GitLabApi.java b/src/main/java/org/gitlab4j/api/GitLabApi.java index ffecae366..ba75d3683 100644 --- a/src/main/java/org/gitlab4j/api/GitLabApi.java +++ b/src/main/java/org/gitlab4j/api/GitLabApi.java @@ -71,6 +71,7 @@ public String getApiNamespace() { private LabelsApi labelsApi; private NotesApi notesApi; private EventsApi eventsApi; + private PersonalSnippetApi personalSnippetApi; /** * Get the GitLab4J shared Logger instance. @@ -1276,4 +1277,22 @@ public static final T orElseThrow(Optional optional) throws GitLabApiExce return (optional.get()); } + + /** + * Gets the PersonalSnippetApi instance owned by this GitLabApi instance. The PersonalSnippetApi is used + * to perform all personal snippet related API calls. + * + * @return the PersonalSnippetApi instance owned by this GitLabApi instance + */ + public PersonalSnippetApi getPersonalSnippetApi() { + if (personalSnippetApi == null) { + synchronized (this) { + if (personalSnippetApi == null) { + personalSnippetApi = new PersonalSnippetApi(this); + } + } + } + + return personalSnippetApi; + } } diff --git a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java b/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java new file mode 100644 index 000000000..691f96e78 --- /dev/null +++ b/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java @@ -0,0 +1,10 @@ +package org.gitlab4j.api; + +public class PersonalSnippetApi extends AbstractApi { + + public PersonalSnippetApi(GitLabApi gitLabApi) { + super(gitLabApi); + } + + +} diff --git a/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java b/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java new file mode 100644 index 000000000..c849493f3 --- /dev/null +++ b/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java @@ -0,0 +1,54 @@ +package org.gitlab4j.api; + +import static org.junit.Assert.*; + +import org.gitlab4j.api.GitLabApi.ApiVersion; +import org.junit.BeforeClass; +import org.junit.Test; + +public class TestPersonalSnippetApi { + + private static final String TEST_HOST_URL; + private static final String TEST_PRIVATE_TOKEN; + + static { + TEST_HOST_URL = TestUtils.getProperty("TEST_HOST_URL"); + TEST_PRIVATE_TOKEN = TestUtils.getProperty("TEST_PRIVATE_TOKEN"); + } + + private static final String TEST_SNIPPET_TITLE_PREFIX = "Test Snippet: "; + private static GitLabApi gitLabApi; + + @BeforeClass + public static void setup() { + + String problems = ""; + + if (TEST_HOST_URL == null || TEST_HOST_URL.trim().isEmpty()) { + problems += "TEST_HOST_URL cannot be empty\n"; + } + + if (TEST_PRIVATE_TOKEN == null || TEST_PRIVATE_TOKEN.trim().isEmpty()) { + problems += "TEST_PRIVATE_TOKEN cannot be empty\n"; + } + + if (problems.isEmpty()) { + gitLabApi = new GitLabApi(ApiVersion.V4, TEST_HOST_URL, TEST_PRIVATE_TOKEN); + } else { + System.err.print(problems); + } + + deleteAllPersonalTestSnippets(); + } + + public static void deleteAllPersonalTestSnippets() { + + } + + @Test + public void testCreate() { + assertEquals(TEST_HOST_URL, "http://172.19.0.4/"); + assertNotNull(gitLabApi.getPersonalSnippetApi()); + } + +} From 15c2b637a33b3861fcf39767d17ef184ea5a4bc5 Mon Sep 17 00:00:00 2001 From: Jefferson Fausto Vaz Date: Wed, 9 May 2018 16:48:39 -0300 Subject: [PATCH 02/12] Adding basic features of Gitlab Personal Snippet API --- .../org/gitlab4j/api/PersonalSnippetApi.java | 33 +++++++++ .../java/org/gitlab4j/api/models/Snippet.java | 28 ++++++++ .../gitlab4j/api/TestPersonalSnippetApi.java | 70 ++++++++++++++++--- 3 files changed, 120 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java b/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java index 691f96e78..7fa445c40 100644 --- a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java +++ b/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java @@ -1,10 +1,43 @@ package org.gitlab4j.api; +import java.util.List; + +import javax.ws.rs.core.GenericType; +import javax.ws.rs.core.Response; + +import org.gitlab4j.api.models.Snippet; + public class PersonalSnippetApi extends AbstractApi { public PersonalSnippetApi(GitLabApi gitLabApi) { super(gitLabApi); } + public Snippet createSnippet(String title, String filename, String content) throws GitLabApiException { + GitLabApiForm formData = new GitLabApiForm() + .withParam("title", title) + .withParam("file_name", filename) + .withParam("content", content); + + Response response = post(Response.Status.CREATED, formData, "snippets"); + return (response.readEntity(Snippet.class)); + } + + public void deleteSnippet(Integer snippetId) throws GitLabApiException { + if (snippetId == null) { + throw new RuntimeException("snippetId can't be null"); + } + delete(Response.Status.NO_CONTENT, null, "snippets", snippetId); + } + + public List getSnippets() throws GitLabApiException { + Response response = get(Response.Status.OK, getDefaultPerPageParam(), "snippets"); + return (response.readEntity(new GenericType>() {})); + } + + public String getSnippetContent(Integer snippetId) throws GitLabApiException { + Response response = get(Response.Status.OK, null, "snippets", snippetId, "raw"); + return (response.readEntity(String.class)); + } } diff --git a/src/main/java/org/gitlab4j/api/models/Snippet.java b/src/main/java/org/gitlab4j/api/models/Snippet.java index 739d21740..47a024c6b 100644 --- a/src/main/java/org/gitlab4j/api/models/Snippet.java +++ b/src/main/java/org/gitlab4j/api/models/Snippet.java @@ -41,7 +41,19 @@ public class Snippet { private String title; private String updatedAt; private String webUrl; + private String content; + private String rawUrl; + public Snippet() { + + } + + public Snippet(String title, String fileName, String content) { + this.title = title; + this.fileName = fileName; + this.content = content; + } + public Author getAuthor() { return this.author; } @@ -105,4 +117,20 @@ public String getWebUrl() { public void setWebUrl(String webUrl) { this.webUrl = webUrl; } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getRawUrl() { + return rawUrl; + } + + public void setRawUrl(String rawUrl) { + this.rawUrl = rawUrl; + } } diff --git a/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java b/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java index c849493f3..7620543e1 100644 --- a/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java +++ b/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java @@ -1,8 +1,14 @@ package org.gitlab4j.api; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import java.util.List; import org.gitlab4j.api.GitLabApi.ApiVersion; +import org.gitlab4j.api.models.Snippet; import org.junit.BeforeClass; import org.junit.Test; @@ -16,7 +22,6 @@ public class TestPersonalSnippetApi { TEST_PRIVATE_TOKEN = TestUtils.getProperty("TEST_PRIVATE_TOKEN"); } - private static final String TEST_SNIPPET_TITLE_PREFIX = "Test Snippet: "; private static GitLabApi gitLabApi; @BeforeClass @@ -37,18 +42,61 @@ public static void setup() { } else { System.err.print(problems); } - - deleteAllPersonalTestSnippets(); - } - - public static void deleteAllPersonalTestSnippets() { - } @Test - public void testCreate() { - assertEquals(TEST_HOST_URL, "http://172.19.0.4/"); - assertNotNull(gitLabApi.getPersonalSnippetApi()); + public void testCreate() throws GitLabApiException { + Snippet snippet = createPersonalSnippet(new Snippet("A Small Snippet", "Snippet.java", "Java content")); + assertEquals("A Small Snippet", snippet.getTitle()); + assertEquals("Snippet.java", snippet.getFileName()); + assertNull(snippet.getContent()); + + deletePersonalSnippet(snippet); + } + + @Test + public void testDelete() throws GitLabApiException { + Snippet snippet = createPersonalSnippet(new Snippet("A Small Snippet", "Snippet.java", "Java content")); + deletePersonalSnippet(snippet); + + PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); + List snippets = api.getSnippets(); + boolean found = snippets.stream().anyMatch( + s -> s.getId().equals(snippet.getId())); + assertFalse(found); } + @Test + public void testList() throws GitLabApiException { + Snippet snippet1 = createPersonalSnippet(new Snippet("Snippet 1", "Snippet.java", "Java content")); + Snippet snippet2 = createPersonalSnippet(new Snippet("Snippet 2", "Snippet.java", "Java content")); + + PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); + List snippets = api.getSnippets(); + + assertTrue(snippets.size() >= 2); + + deletePersonalSnippet(snippet1); + deletePersonalSnippet(snippet2); + } + + @Test + public void testSnippetContent() throws GitLabApiException { + Snippet snippet = createPersonalSnippet( + new Snippet("Snippet 1", "Snippet.java", "System.out.println(\"\");")); + PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); + String snippetContent = api.getSnippetContent(snippet.getId()); + assertEquals("System.out.println(\"\");", snippetContent); + } + + public void deletePersonalSnippet(Snippet snippet) throws GitLabApiException { + PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); + api.deleteSnippet(snippet.getId()); + } + + public Snippet createPersonalSnippet(Snippet snippet) throws GitLabApiException { + PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); + return api.createSnippet(snippet.getTitle(), snippet.getFileName(), snippet.getContent()); + } + } From 54a8433d4a886cd7a03b240322fa47749e094d89 Mon Sep 17 00:00:00 2001 From: Jefferson Fausto Vaz Date: Wed, 9 May 2018 16:55:46 -0300 Subject: [PATCH 03/12] Adding snippet content when listing snippets --- src/main/java/org/gitlab4j/api/PersonalSnippetApi.java | 8 +++++++- .../java/org/gitlab4j/api/TestPersonalSnippetApi.java | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java b/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java index 7fa445c40..67428aff3 100644 --- a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java +++ b/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java @@ -32,7 +32,13 @@ public void deleteSnippet(Integer snippetId) throws GitLabApiException { public List getSnippets() throws GitLabApiException { Response response = get(Response.Status.OK, getDefaultPerPageParam(), "snippets"); - return (response.readEntity(new GenericType>() {})); + List snippets = (response.readEntity(new GenericType>() {})); + + for (Snippet snippet : snippets) { + snippet.setContent(getSnippetContent(snippet.getId())); + } + + return snippets; } public String getSnippetContent(Integer snippetId) throws GitLabApiException { diff --git a/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java b/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java index 7620543e1..454abc46c 100644 --- a/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java +++ b/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java @@ -69,12 +69,15 @@ public void testDelete() throws GitLabApiException { @Test public void testList() throws GitLabApiException { Snippet snippet1 = createPersonalSnippet(new Snippet("Snippet 1", "Snippet.java", "Java content")); - Snippet snippet2 = createPersonalSnippet(new Snippet("Snippet 2", "Snippet.java", "Java content")); + Snippet snippet2 = createPersonalSnippet(new Snippet("Snippet 2", "Snippet.java", "Another java content")); PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); List snippets = api.getSnippets(); assertTrue(snippets.size() >= 2); + assertTrue(snippets.stream().anyMatch(s -> s.getContent().equals("Java content"))); + assertTrue(snippets.stream().anyMatch(s -> s.getContent().equals("Another java content"))); + deletePersonalSnippet(snippet1); deletePersonalSnippet(snippet2); @@ -87,8 +90,11 @@ public void testSnippetContent() throws GitLabApiException { PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); String snippetContent = api.getSnippetContent(snippet.getId()); assertEquals("System.out.println(\"\");", snippetContent); + deletePersonalSnippet(snippet); } + + public void deletePersonalSnippet(Snippet snippet) throws GitLabApiException { PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); api.deleteSnippet(snippet.getId()); From 54a3a58171762dc68ec6be271dd7c32e843588ef Mon Sep 17 00:00:00 2001 From: Jefferson Fausto Vaz Date: Wed, 9 May 2018 17:01:53 -0300 Subject: [PATCH 04/12] Adding javadoc --- .../org/gitlab4j/api/PersonalSnippetApi.java | 38 ++++++++++++++++++- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java b/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java index 67428aff3..ae947929e 100644 --- a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java +++ b/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java @@ -1,18 +1,28 @@ package org.gitlab4j.api; import java.util.List; - import javax.ws.rs.core.GenericType; import javax.ws.rs.core.Response; - import org.gitlab4j.api.models.Snippet; +/** + * This class provides an entry point to all the GitLab Personal Snippet API project calls. + */ public class PersonalSnippetApi extends AbstractApi { public PersonalSnippetApi(GitLabApi gitLabApi) { super(gitLabApi); } + /** + * Create a new Personal Snippet. + * + * @param title the title of the snippet + * @param fileName the file name of the snippet + * @param content the content of the snippet + * @return the created Snippet + * @throws GitLabApiException if any exception occurs + */ public Snippet createSnippet(String title, String filename, String content) throws GitLabApiException { GitLabApiForm formData = new GitLabApiForm() .withParam("title", title) @@ -23,6 +33,14 @@ public Snippet createSnippet(String title, String filename, String content) thro return (response.readEntity(Snippet.class)); } + /** + * Removes Personal Snippet + * + * DELETE /snippets/:id + * + * @param snippetId the snippet ID to remove + * @throws GitLabApiException if any exception occurs + */ public void deleteSnippet(Integer snippetId) throws GitLabApiException { if (snippetId == null) { throw new RuntimeException("snippetId can't be null"); @@ -30,6 +48,14 @@ public void deleteSnippet(Integer snippetId) throws GitLabApiException { delete(Response.Status.NO_CONTENT, null, "snippets", snippetId); } + /** + * Get a list of Authenticated User's Personal Snippets. + * + * GET /snippets + * + * @return a list of authenticated user's personal snippets + * @throws GitLabApiException if any exception occurs + */ public List getSnippets() throws GitLabApiException { Response response = get(Response.Status.OK, getDefaultPerPageParam(), "snippets"); List snippets = (response.readEntity(new GenericType>() {})); @@ -41,6 +67,14 @@ public List getSnippets() throws GitLabApiException { return snippets; } + /** + * Get a the content of a Personal Snippet + * + * GET /snippets/id/raw + * + * @return the content of personal snippet + * @throws GitLabApiException if any exception occurs + */ public String getSnippetContent(Integer snippetId) throws GitLabApiException { Response response = get(Response.Status.OK, null, "snippets", snippetId, "raw"); return (response.readEntity(String.class)); From 358462652d1281a44e6ca1143c2416d8e4c784bd Mon Sep 17 00:00:00 2001 From: Jefferson Fausto Vaz Date: Wed, 9 May 2018 17:23:30 -0300 Subject: [PATCH 05/12] Adding a method to retrieve a specific snippet --- .../org/gitlab4j/api/PersonalSnippetApi.java | 17 +++++++++++++++++ .../gitlab4j/api/TestPersonalSnippetApi.java | 15 ++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java b/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java index ae947929e..027237159 100644 --- a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java +++ b/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java @@ -79,5 +79,22 @@ public String getSnippetContent(Integer snippetId) throws GitLabApiException { Response response = get(Response.Status.OK, null, "snippets", snippetId, "raw"); return (response.readEntity(String.class)); } + + /** + * Get a specific Personal Snippet + * + * @param snippetId the snippet ID to remove + * @return the snippet with the given id + * @throws GitLabApiException + */ + public Snippet getSnippet(Integer snippetId) throws GitLabApiException { + if (snippetId == null) { + throw new RuntimeException("snippetId can't be null"); + } + Response response = get(Response.Status.OK, null, "snippets", snippetId); + Snippet snippet = response.readEntity(Snippet.class); + snippet.setContent(getSnippetContent(snippet.getId())); + return snippet; + } } diff --git a/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java b/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java index 454abc46c..9555546dc 100644 --- a/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java +++ b/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java @@ -93,7 +93,20 @@ public void testSnippetContent() throws GitLabApiException { deletePersonalSnippet(snippet); } - + @Test + public void testRetrieveSnippet() throws GitLabApiException { + Snippet snippet = createPersonalSnippet + (new Snippet("Xml Snippet", "file.xml", "1")); + + PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); + Snippet savedSnippet = api.getSnippet(snippet.getId()); + + assertEquals("Xml Snippet", savedSnippet.getTitle()); + assertEquals("file.xml", savedSnippet.getFileName()); + assertEquals("1", savedSnippet.getContent()); + + deletePersonalSnippet(savedSnippet); + } public void deletePersonalSnippet(Snippet snippet) throws GitLabApiException { PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); From 5e9c392694c1bfddb78eb4e39e5f245e39dc2ac8 Mon Sep 17 00:00:00 2001 From: Jefferson Fausto Vaz Date: Wed, 9 May 2018 17:38:38 -0300 Subject: [PATCH 06/12] Adding a new constructor to the Personal Snippet --- .../org/gitlab4j/api/PersonalSnippetApi.java | 24 +++++++++++++++++++ .../java/org/gitlab4j/api/models/Snippet.java | 24 +++++++++++++++++++ .../gitlab4j/api/TestPersonalSnippetApi.java | 19 +++++++++++---- 3 files changed, 63 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java b/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java index 027237159..ce1f96aae 100644 --- a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java +++ b/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java @@ -4,6 +4,7 @@ import javax.ws.rs.core.GenericType; import javax.ws.rs.core.Response; import org.gitlab4j.api.models.Snippet; +import org.gitlab4j.api.models.Visibility; /** * This class provides an entry point to all the GitLab Personal Snippet API project calls. @@ -32,6 +33,29 @@ public Snippet createSnippet(String title, String filename, String content) thro Response response = post(Response.Status.CREATED, formData, "snippets"); return (response.readEntity(Snippet.class)); } + + /** + * Create a new Personal Snippet. + * + * @param title the title of the snippet + * @param fileName the file name of the snippet + * @param content the content of the snippet + * @param visibility the visibility (Public, Internal, Private) of the snippet + * @param description the description of the snippet + * @return the created Snippet + * @throws GitLabApiException if any exception occurs + */ + public Snippet createSnippet(String title, String filename, String content, Visibility visibility, String description) throws GitLabApiException { + GitLabApiForm formData = new GitLabApiForm() + .withParam("title", title) + .withParam("file_name", filename) + .withParam("content", content) + .withParam("visibility", visibility) + .withParam("description", description); + + Response response = post(Response.Status.CREATED, formData, "snippets"); + return (response.readEntity(Snippet.class)); + } /** * Removes Personal Snippet diff --git a/src/main/java/org/gitlab4j/api/models/Snippet.java b/src/main/java/org/gitlab4j/api/models/Snippet.java index 47a024c6b..1c5f4abab 100644 --- a/src/main/java/org/gitlab4j/api/models/Snippet.java +++ b/src/main/java/org/gitlab4j/api/models/Snippet.java @@ -43,11 +43,19 @@ public class Snippet { private String webUrl; private String content; private String rawUrl; + private Visibility visibility; + private String description; public Snippet() { } + public Snippet(String title, String fileName, String content, Visibility visibility, String description) { + this(title, fileName, content); + this.visibility = visibility; + this.description = description; + } + public Snippet(String title, String fileName, String content) { this.title = title; this.fileName = fileName; @@ -133,4 +141,20 @@ public String getRawUrl() { public void setRawUrl(String rawUrl) { this.rawUrl = rawUrl; } + + public Visibility getVisibility() { + return visibility; + } + + public void setVisibility(Visibility visibility) { + this.visibility = visibility; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } } diff --git a/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java b/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java index 9555546dc..bfb8c9f79 100644 --- a/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java +++ b/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java @@ -9,6 +9,7 @@ import org.gitlab4j.api.GitLabApi.ApiVersion; import org.gitlab4j.api.models.Snippet; +import org.gitlab4j.api.models.Visibility; import org.junit.BeforeClass; import org.junit.Test; @@ -46,7 +47,8 @@ public static void setup() { @Test public void testCreate() throws GitLabApiException { - Snippet snippet = createPersonalSnippet(new Snippet("A Small Snippet", "Snippet.java", "Java content")); + Snippet snippet = createPersonalSnippet( + new Snippet("A Small Snippet", "Snippet.java", "Java content")); assertEquals("A Small Snippet", snippet.getTitle()); assertEquals("Snippet.java", snippet.getFileName()); assertNull(snippet.getContent()); @@ -95,8 +97,12 @@ public void testSnippetContent() throws GitLabApiException { @Test public void testRetrieveSnippet() throws GitLabApiException { - Snippet snippet = createPersonalSnippet - (new Snippet("Xml Snippet", "file.xml", "1")); + Snippet snippet = createPersonalSnippet (new Snippet( + "Xml Snippet", + "file.xml", + "1", + Visibility.INTERNAL, + "Description")); PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); Snippet savedSnippet = api.getSnippet(snippet.getId()); @@ -104,6 +110,7 @@ public void testRetrieveSnippet() throws GitLabApiException { assertEquals("Xml Snippet", savedSnippet.getTitle()); assertEquals("file.xml", savedSnippet.getFileName()); assertEquals("1", savedSnippet.getContent()); + assertEquals("Description", savedSnippet.getDescription()); deletePersonalSnippet(savedSnippet); } @@ -115,7 +122,11 @@ public void deletePersonalSnippet(Snippet snippet) throws GitLabApiException { public Snippet createPersonalSnippet(Snippet snippet) throws GitLabApiException { PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); - return api.createSnippet(snippet.getTitle(), snippet.getFileName(), snippet.getContent()); + return api.createSnippet(snippet.getTitle(), + snippet.getFileName(), + snippet.getContent(), + snippet.getVisibility(), + snippet.getDescription()); } } From f76b94d636f109be3d90519b19a8cd7b6069c78d Mon Sep 17 00:00:00 2001 From: Jefferson Fausto Vaz Date: Thu, 10 May 2018 09:21:22 -0300 Subject: [PATCH 07/12] Fixing some javadocs problems --- src/main/java/org/gitlab4j/api/PersonalSnippetApi.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java b/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java index ce1f96aae..eafb17d9f 100644 --- a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java +++ b/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java @@ -24,10 +24,10 @@ public PersonalSnippetApi(GitLabApi gitLabApi) { * @return the created Snippet * @throws GitLabApiException if any exception occurs */ - public Snippet createSnippet(String title, String filename, String content) throws GitLabApiException { + public Snippet createSnippet(String title, String fileName, String content) throws GitLabApiException { GitLabApiForm formData = new GitLabApiForm() .withParam("title", title) - .withParam("file_name", filename) + .withParam("file_name", fileName) .withParam("content", content); Response response = post(Response.Status.CREATED, formData, "snippets"); @@ -45,10 +45,10 @@ public Snippet createSnippet(String title, String filename, String content) thro * @return the created Snippet * @throws GitLabApiException if any exception occurs */ - public Snippet createSnippet(String title, String filename, String content, Visibility visibility, String description) throws GitLabApiException { + public Snippet createSnippet(String title, String fileName, String content, Visibility visibility, String description) throws GitLabApiException { GitLabApiForm formData = new GitLabApiForm() .withParam("title", title) - .withParam("file_name", filename) + .withParam("file_name", fileName) .withParam("content", content) .withParam("visibility", visibility) .withParam("description", description); @@ -96,6 +96,7 @@ public List getSnippets() throws GitLabApiException { * * GET /snippets/id/raw * + * @param snippetId the snippet ID to remove * @return the content of personal snippet * @throws GitLabApiException if any exception occurs */ From e68b0222d6af11fc55e4f742cee013a2b6b419f1 Mon Sep 17 00:00:00 2001 From: Jefferson Fausto Vaz Date: Thu, 10 May 2018 11:00:08 -0300 Subject: [PATCH 08/12] Fixing a javadoc warning --- src/main/java/org/gitlab4j/api/PersonalSnippetApi.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java b/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java index eafb17d9f..d3dfbcb22 100644 --- a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java +++ b/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java @@ -110,7 +110,7 @@ public String getSnippetContent(Integer snippetId) throws GitLabApiException { * * @param snippetId the snippet ID to remove * @return the snippet with the given id - * @throws GitLabApiException + * @throws GitLabApiException if any exception occurs */ public Snippet getSnippet(Integer snippetId) throws GitLabApiException { if (snippetId == null) { From 060eaa6d6e74e6f18d9106ea603210b3aba75819 Mon Sep 17 00:00:00 2001 From: Jefferson Fausto Vaz Date: Thu, 10 May 2018 14:28:49 -0300 Subject: [PATCH 09/12] Renaming from PersonalSnippetApi to SnippetApi --- src/main/java/org/gitlab4j/api/GitLabApi.java | 18 ++++---- ...ersonalSnippetApi.java => SnippetApi.java} | 22 +++++----- ...nalSnippetApi.java => TestSnippetApi.java} | 42 +++++++++---------- 3 files changed, 41 insertions(+), 41 deletions(-) rename src/main/java/org/gitlab4j/api/{PersonalSnippetApi.java => SnippetApi.java} (86%) rename src/test/java/org/gitlab4j/api/{TestPersonalSnippetApi.java => TestSnippetApi.java} (72%) diff --git a/src/main/java/org/gitlab4j/api/GitLabApi.java b/src/main/java/org/gitlab4j/api/GitLabApi.java index ba75d3683..c9a067a56 100644 --- a/src/main/java/org/gitlab4j/api/GitLabApi.java +++ b/src/main/java/org/gitlab4j/api/GitLabApi.java @@ -71,7 +71,7 @@ public String getApiNamespace() { private LabelsApi labelsApi; private NotesApi notesApi; private EventsApi eventsApi; - private PersonalSnippetApi personalSnippetApi; + private SnippetApi snippetApi; /** * Get the GitLab4J shared Logger instance. @@ -1279,20 +1279,20 @@ public static final T orElseThrow(Optional optional) throws GitLabApiExce } /** - * Gets the PersonalSnippetApi instance owned by this GitLabApi instance. The PersonalSnippetApi is used - * to perform all personal snippet related API calls. + * Gets the SnippetApi instance owned by this GitLabApi instance. The SnippetApi is used + * to perform all snippet related API calls. * - * @return the PersonalSnippetApi instance owned by this GitLabApi instance + * @return the SnippetApi instance owned by this GitLabApi instance */ - public PersonalSnippetApi getPersonalSnippetApi() { - if (personalSnippetApi == null) { + public SnippetApi getSnippetApi() { + if (snippetApi == null) { synchronized (this) { - if (personalSnippetApi == null) { - personalSnippetApi = new PersonalSnippetApi(this); + if (snippetApi == null) { + snippetApi = new SnippetApi(this); } } } - return personalSnippetApi; + return snippetApi; } } diff --git a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java b/src/main/java/org/gitlab4j/api/SnippetApi.java similarity index 86% rename from src/main/java/org/gitlab4j/api/PersonalSnippetApi.java rename to src/main/java/org/gitlab4j/api/SnippetApi.java index d3dfbcb22..d3adb26e4 100644 --- a/src/main/java/org/gitlab4j/api/PersonalSnippetApi.java +++ b/src/main/java/org/gitlab4j/api/SnippetApi.java @@ -7,16 +7,16 @@ import org.gitlab4j.api.models.Visibility; /** - * This class provides an entry point to all the GitLab Personal Snippet API project calls. + * This class provides an entry point to all the GitLab Snippet API project calls. */ -public class PersonalSnippetApi extends AbstractApi { +public class SnippetApi extends AbstractApi { - public PersonalSnippetApi(GitLabApi gitLabApi) { + public SnippetApi(GitLabApi gitLabApi) { super(gitLabApi); } /** - * Create a new Personal Snippet. + * Create a new Snippet. * * @param title the title of the snippet * @param fileName the file name of the snippet @@ -35,7 +35,7 @@ public Snippet createSnippet(String title, String fileName, String content) thro } /** - * Create a new Personal Snippet. + * Create a new Snippet. * * @param title the title of the snippet * @param fileName the file name of the snippet @@ -58,7 +58,7 @@ public Snippet createSnippet(String title, String fileName, String content, Visi } /** - * Removes Personal Snippet + * Removes Snippet * * DELETE /snippets/:id * @@ -73,11 +73,11 @@ public void deleteSnippet(Integer snippetId) throws GitLabApiException { } /** - * Get a list of Authenticated User's Personal Snippets. + * Get a list of Authenticated User's Snippets. * * GET /snippets * - * @return a list of authenticated user's personal snippets + * @return a list of authenticated user's snippets * @throws GitLabApiException if any exception occurs */ public List getSnippets() throws GitLabApiException { @@ -92,12 +92,12 @@ public List getSnippets() throws GitLabApiException { } /** - * Get a the content of a Personal Snippet + * Get a the content of a Snippet * * GET /snippets/id/raw * * @param snippetId the snippet ID to remove - * @return the content of personal snippet + * @return the content of snippet * @throws GitLabApiException if any exception occurs */ public String getSnippetContent(Integer snippetId) throws GitLabApiException { @@ -106,7 +106,7 @@ public String getSnippetContent(Integer snippetId) throws GitLabApiException { } /** - * Get a specific Personal Snippet + * Get a specific Snippet * * @param snippetId the snippet ID to remove * @return the snippet with the given id diff --git a/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java b/src/test/java/org/gitlab4j/api/TestSnippetApi.java similarity index 72% rename from src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java rename to src/test/java/org/gitlab4j/api/TestSnippetApi.java index bfb8c9f79..3705a6b61 100644 --- a/src/test/java/org/gitlab4j/api/TestPersonalSnippetApi.java +++ b/src/test/java/org/gitlab4j/api/TestSnippetApi.java @@ -13,7 +13,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class TestPersonalSnippetApi { +public class TestSnippetApi { private static final String TEST_HOST_URL; private static final String TEST_PRIVATE_TOKEN; @@ -47,21 +47,21 @@ public static void setup() { @Test public void testCreate() throws GitLabApiException { - Snippet snippet = createPersonalSnippet( + Snippet snippet = createSnippet( new Snippet("A Small Snippet", "Snippet.java", "Java content")); assertEquals("A Small Snippet", snippet.getTitle()); assertEquals("Snippet.java", snippet.getFileName()); assertNull(snippet.getContent()); - deletePersonalSnippet(snippet); + deleteSnippet(snippet); } @Test public void testDelete() throws GitLabApiException { - Snippet snippet = createPersonalSnippet(new Snippet("A Small Snippet", "Snippet.java", "Java content")); - deletePersonalSnippet(snippet); + Snippet snippet = createSnippet(new Snippet("A Small Snippet", "Snippet.java", "Java content")); + deleteSnippet(snippet); - PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); + SnippetApi api = gitLabApi.getSnippetApi(); List snippets = api.getSnippets(); boolean found = snippets.stream().anyMatch( s -> s.getId().equals(snippet.getId())); @@ -70,10 +70,10 @@ public void testDelete() throws GitLabApiException { @Test public void testList() throws GitLabApiException { - Snippet snippet1 = createPersonalSnippet(new Snippet("Snippet 1", "Snippet.java", "Java content")); - Snippet snippet2 = createPersonalSnippet(new Snippet("Snippet 2", "Snippet.java", "Another java content")); + Snippet snippet1 = createSnippet(new Snippet("Snippet 1", "Snippet.java", "Java content")); + Snippet snippet2 = createSnippet(new Snippet("Snippet 2", "Snippet.java", "Another java content")); - PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); + SnippetApi api = gitLabApi.getSnippetApi(); List snippets = api.getSnippets(); assertTrue(snippets.size() >= 2); @@ -81,30 +81,30 @@ public void testList() throws GitLabApiException { assertTrue(snippets.stream().anyMatch(s -> s.getContent().equals("Another java content"))); - deletePersonalSnippet(snippet1); - deletePersonalSnippet(snippet2); + deleteSnippet(snippet1); + deleteSnippet(snippet2); } @Test public void testSnippetContent() throws GitLabApiException { - Snippet snippet = createPersonalSnippet( + Snippet snippet = createSnippet( new Snippet("Snippet 1", "Snippet.java", "System.out.println(\"\");")); - PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); + SnippetApi api = gitLabApi.getSnippetApi(); String snippetContent = api.getSnippetContent(snippet.getId()); assertEquals("System.out.println(\"\");", snippetContent); - deletePersonalSnippet(snippet); + deleteSnippet(snippet); } @Test public void testRetrieveSnippet() throws GitLabApiException { - Snippet snippet = createPersonalSnippet (new Snippet( + Snippet snippet = createSnippet (new Snippet( "Xml Snippet", "file.xml", "1", Visibility.INTERNAL, "Description")); - PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); + SnippetApi api = gitLabApi.getSnippetApi(); Snippet savedSnippet = api.getSnippet(snippet.getId()); assertEquals("Xml Snippet", savedSnippet.getTitle()); @@ -112,16 +112,16 @@ public void testRetrieveSnippet() throws GitLabApiException { assertEquals("1", savedSnippet.getContent()); assertEquals("Description", savedSnippet.getDescription()); - deletePersonalSnippet(savedSnippet); + deleteSnippet(savedSnippet); } - public void deletePersonalSnippet(Snippet snippet) throws GitLabApiException { - PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); + public void deleteSnippet(Snippet snippet) throws GitLabApiException { + SnippetApi api = gitLabApi.getSnippetApi(); api.deleteSnippet(snippet.getId()); } - public Snippet createPersonalSnippet(Snippet snippet) throws GitLabApiException { - PersonalSnippetApi api = gitLabApi.getPersonalSnippetApi(); + public Snippet createSnippet(Snippet snippet) throws GitLabApiException { + SnippetApi api = gitLabApi.getSnippetApi(); return api.createSnippet(snippet.getTitle(), snippet.getFileName(), snippet.getContent(), From 3229f6d028ebedd3e4f01db510bb8747b8416ba0 Mon Sep 17 00:00:00 2001 From: Jefferson Fausto Vaz Date: Thu, 10 May 2018 14:36:24 -0300 Subject: [PATCH 10/12] Renaming From Snippet to Snippets --- src/main/java/org/gitlab4j/api/GitLabApi.java | 6 +++--- .../api/{SnippetApi.java => SnippetsApi.java} | 6 +++--- .../{TestSnippetApi.java => TestSnippetsApi.java} | 14 +++++++------- 3 files changed, 13 insertions(+), 13 deletions(-) rename src/main/java/org/gitlab4j/api/{SnippetApi.java => SnippetsApi.java} (95%) rename src/test/java/org/gitlab4j/api/{TestSnippetApi.java => TestSnippetsApi.java} (92%) diff --git a/src/main/java/org/gitlab4j/api/GitLabApi.java b/src/main/java/org/gitlab4j/api/GitLabApi.java index c9a067a56..7f2250b5d 100644 --- a/src/main/java/org/gitlab4j/api/GitLabApi.java +++ b/src/main/java/org/gitlab4j/api/GitLabApi.java @@ -71,7 +71,7 @@ public String getApiNamespace() { private LabelsApi labelsApi; private NotesApi notesApi; private EventsApi eventsApi; - private SnippetApi snippetApi; + private SnippetsApi snippetApi; /** * Get the GitLab4J shared Logger instance. @@ -1284,11 +1284,11 @@ public static final T orElseThrow(Optional optional) throws GitLabApiExce * * @return the SnippetApi instance owned by this GitLabApi instance */ - public SnippetApi getSnippetApi() { + public SnippetsApi getSnippetApi() { if (snippetApi == null) { synchronized (this) { if (snippetApi == null) { - snippetApi = new SnippetApi(this); + snippetApi = new SnippetsApi(this); } } } diff --git a/src/main/java/org/gitlab4j/api/SnippetApi.java b/src/main/java/org/gitlab4j/api/SnippetsApi.java similarity index 95% rename from src/main/java/org/gitlab4j/api/SnippetApi.java rename to src/main/java/org/gitlab4j/api/SnippetsApi.java index d3adb26e4..afe8cc9fd 100644 --- a/src/main/java/org/gitlab4j/api/SnippetApi.java +++ b/src/main/java/org/gitlab4j/api/SnippetsApi.java @@ -7,11 +7,11 @@ import org.gitlab4j.api.models.Visibility; /** - * This class provides an entry point to all the GitLab Snippet API project calls. + * This class provides an entry point to all the GitLab Snippets API project calls. */ -public class SnippetApi extends AbstractApi { +public class SnippetsApi extends AbstractApi { - public SnippetApi(GitLabApi gitLabApi) { + public SnippetsApi(GitLabApi gitLabApi) { super(gitLabApi); } diff --git a/src/test/java/org/gitlab4j/api/TestSnippetApi.java b/src/test/java/org/gitlab4j/api/TestSnippetsApi.java similarity index 92% rename from src/test/java/org/gitlab4j/api/TestSnippetApi.java rename to src/test/java/org/gitlab4j/api/TestSnippetsApi.java index 3705a6b61..61a9840a2 100644 --- a/src/test/java/org/gitlab4j/api/TestSnippetApi.java +++ b/src/test/java/org/gitlab4j/api/TestSnippetsApi.java @@ -13,7 +13,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class TestSnippetApi { +public class TestSnippetsApi { private static final String TEST_HOST_URL; private static final String TEST_PRIVATE_TOKEN; @@ -61,7 +61,7 @@ public void testDelete() throws GitLabApiException { Snippet snippet = createSnippet(new Snippet("A Small Snippet", "Snippet.java", "Java content")); deleteSnippet(snippet); - SnippetApi api = gitLabApi.getSnippetApi(); + SnippetsApi api = gitLabApi.getSnippetApi(); List snippets = api.getSnippets(); boolean found = snippets.stream().anyMatch( s -> s.getId().equals(snippet.getId())); @@ -73,7 +73,7 @@ public void testList() throws GitLabApiException { Snippet snippet1 = createSnippet(new Snippet("Snippet 1", "Snippet.java", "Java content")); Snippet snippet2 = createSnippet(new Snippet("Snippet 2", "Snippet.java", "Another java content")); - SnippetApi api = gitLabApi.getSnippetApi(); + SnippetsApi api = gitLabApi.getSnippetApi(); List snippets = api.getSnippets(); assertTrue(snippets.size() >= 2); @@ -89,7 +89,7 @@ public void testList() throws GitLabApiException { public void testSnippetContent() throws GitLabApiException { Snippet snippet = createSnippet( new Snippet("Snippet 1", "Snippet.java", "System.out.println(\"\");")); - SnippetApi api = gitLabApi.getSnippetApi(); + SnippetsApi api = gitLabApi.getSnippetApi(); String snippetContent = api.getSnippetContent(snippet.getId()); assertEquals("System.out.println(\"\");", snippetContent); deleteSnippet(snippet); @@ -104,7 +104,7 @@ public void testRetrieveSnippet() throws GitLabApiException { Visibility.INTERNAL, "Description")); - SnippetApi api = gitLabApi.getSnippetApi(); + SnippetsApi api = gitLabApi.getSnippetApi(); Snippet savedSnippet = api.getSnippet(snippet.getId()); assertEquals("Xml Snippet", savedSnippet.getTitle()); @@ -116,12 +116,12 @@ public void testRetrieveSnippet() throws GitLabApiException { } public void deleteSnippet(Snippet snippet) throws GitLabApiException { - SnippetApi api = gitLabApi.getSnippetApi(); + SnippetsApi api = gitLabApi.getSnippetApi(); api.deleteSnippet(snippet.getId()); } public Snippet createSnippet(Snippet snippet) throws GitLabApiException { - SnippetApi api = gitLabApi.getSnippetApi(); + SnippetsApi api = gitLabApi.getSnippetApi(); return api.createSnippet(snippet.getTitle(), snippet.getFileName(), snippet.getContent(), From 218988a52efd777e286fca6604729dd7e5cb2edd Mon Sep 17 00:00:00 2001 From: Jefferson Fausto Vaz Date: Thu, 10 May 2018 17:16:01 -0300 Subject: [PATCH 11/12] Renaming from snippetApi to snippetsApi --- src/main/java/org/gitlab4j/api/GitLabApi.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/gitlab4j/api/GitLabApi.java b/src/main/java/org/gitlab4j/api/GitLabApi.java index 7f2250b5d..c409d0028 100644 --- a/src/main/java/org/gitlab4j/api/GitLabApi.java +++ b/src/main/java/org/gitlab4j/api/GitLabApi.java @@ -71,7 +71,7 @@ public String getApiNamespace() { private LabelsApi labelsApi; private NotesApi notesApi; private EventsApi eventsApi; - private SnippetsApi snippetApi; + private SnippetsApi snippetsApi; /** * Get the GitLab4J shared Logger instance. @@ -1279,20 +1279,20 @@ public static final T orElseThrow(Optional optional) throws GitLabApiExce } /** - * Gets the SnippetApi instance owned by this GitLabApi instance. The SnippetApi is used + * Gets the SnippetsApi instance owned by this GitLabApi instance. The SnippetsApi is used * to perform all snippet related API calls. * - * @return the SnippetApi instance owned by this GitLabApi instance + * @return the SnippetsApi instance owned by this GitLabApi instance */ public SnippetsApi getSnippetApi() { - if (snippetApi == null) { + if (snippetsApi == null) { synchronized (this) { - if (snippetApi == null) { - snippetApi = new SnippetsApi(this); + if (snippetsApi == null) { + snippetsApi = new SnippetsApi(this); } } } - return snippetApi; + return snippetsApi; } } From a29e5e74a20e03fdb875ca5c03132b56122e5215 Mon Sep 17 00:00:00 2001 From: Jefferson Fausto Vaz Date: Thu, 10 May 2018 17:17:37 -0300 Subject: [PATCH 12/12] Adding a boolean parameter which indicates whether to download snippet content and rewriting tests --- .../java/org/gitlab4j/api/SnippetsApi.java | 58 ++++++++++++++----- .../org/gitlab4j/api/TestSnippetsApi.java | 56 +++++++++++------- 2 files changed, 79 insertions(+), 35 deletions(-) diff --git a/src/main/java/org/gitlab4j/api/SnippetsApi.java b/src/main/java/org/gitlab4j/api/SnippetsApi.java index afe8cc9fd..6336d2cc4 100644 --- a/src/main/java/org/gitlab4j/api/SnippetsApi.java +++ b/src/main/java/org/gitlab4j/api/SnippetsApi.java @@ -26,9 +26,9 @@ public SnippetsApi(GitLabApi gitLabApi) { */ public Snippet createSnippet(String title, String fileName, String content) throws GitLabApiException { GitLabApiForm formData = new GitLabApiForm() - .withParam("title", title) - .withParam("file_name", fileName) - .withParam("content", content); + .withParam("title", title, true) + .withParam("file_name", fileName, true) + .withParam("content", content, true); Response response = post(Response.Status.CREATED, formData, "snippets"); return (response.readEntity(Snippet.class)); @@ -47,9 +47,9 @@ public Snippet createSnippet(String title, String fileName, String content) thro */ public Snippet createSnippet(String title, String fileName, String content, Visibility visibility, String description) throws GitLabApiException { GitLabApiForm formData = new GitLabApiForm() - .withParam("title", title) - .withParam("file_name", fileName) - .withParam("content", content) + .withParam("title", title, true) + .withParam("file_name", fileName, true) + .withParam("content", content, true) .withParam("visibility", visibility) .withParam("description", description); @@ -77,26 +77,41 @@ public void deleteSnippet(Integer snippetId) throws GitLabApiException { * * GET /snippets * + * @param downloadContent indicating whether to download the snippet content * @return a list of authenticated user's snippets * @throws GitLabApiException if any exception occurs */ - public List getSnippets() throws GitLabApiException { + public List getSnippets(boolean downloadContent) throws GitLabApiException { Response response = get(Response.Status.OK, getDefaultPerPageParam(), "snippets"); List snippets = (response.readEntity(new GenericType>() {})); - for (Snippet snippet : snippets) { - snippet.setContent(getSnippetContent(snippet.getId())); - } + if(downloadContent) { + for (Snippet snippet : snippets) { + snippet.setContent(getSnippetContent(snippet.getId())); + } + } return snippets; } + /** + * Get a list of Authenticated User's Snippets. + * + * GET /snippets + * + * @return a list of authenticated user's snippets + * @throws GitLabApiException if any exception occurs + */ + public List getSnippets() throws GitLabApiException { + return getSnippets(false); + } + /** * Get a the content of a Snippet * * GET /snippets/id/raw * - * @param snippetId the snippet ID to remove + * @param snippetId the snippet ID to remove * @return the content of snippet * @throws GitLabApiException if any exception occurs */ @@ -109,17 +124,34 @@ public String getSnippetContent(Integer snippetId) throws GitLabApiException { * Get a specific Snippet * * @param snippetId the snippet ID to remove + * @param downloadContent indicating whether to download the snippet content * @return the snippet with the given id * @throws GitLabApiException if any exception occurs */ - public Snippet getSnippet(Integer snippetId) throws GitLabApiException { + public Snippet getSnippet(Integer snippetId, boolean downloadContent) throws GitLabApiException { if (snippetId == null) { throw new RuntimeException("snippetId can't be null"); } + Response response = get(Response.Status.OK, null, "snippets", snippetId); Snippet snippet = response.readEntity(Snippet.class); - snippet.setContent(getSnippetContent(snippet.getId())); + + if(downloadContent) { + snippet.setContent(getSnippetContent(snippet.getId())); + } + return snippet; } + /** + * Get a specific Snippet + * + * @param snippetId the snippet ID to remove + * @return the snippet with the given id + * @throws GitLabApiException if any exception occurs + */ + public Snippet getSnippet(Integer snippetId) throws GitLabApiException { + return getSnippet(snippetId, false); + } + } diff --git a/src/test/java/org/gitlab4j/api/TestSnippetsApi.java b/src/test/java/org/gitlab4j/api/TestSnippetsApi.java index 61a9840a2..f80fb1c19 100644 --- a/src/test/java/org/gitlab4j/api/TestSnippetsApi.java +++ b/src/test/java/org/gitlab4j/api/TestSnippetsApi.java @@ -24,6 +24,12 @@ public class TestSnippetsApi { } private static GitLabApi gitLabApi; + private static final String TEST_SNIPPET_TITLE_1 = "test-snippet-title-1"; + private static final String TEST_SNIPPET_FILE_NAME_1 = "test-snippet-file-name-1"; + private static final String TEST_SNIPPET_CONTENT_1 = "test-snippet-content-1"; + private static final String TEST_SNIPPET_CONTENT_2 = "test-snippet-content-2"; + private static final String TEST_SNIPPET_DESCRIPTION_1 = "test-snippet-description-1"; + @BeforeClass public static void setup() { @@ -47,10 +53,11 @@ public static void setup() { @Test public void testCreate() throws GitLabApiException { - Snippet snippet = createSnippet( - new Snippet("A Small Snippet", "Snippet.java", "Java content")); - assertEquals("A Small Snippet", snippet.getTitle()); - assertEquals("Snippet.java", snippet.getFileName()); + Snippet snippet = createSnippet(new Snippet(TEST_SNIPPET_TITLE_1, + TEST_SNIPPET_FILE_NAME_1, + TEST_SNIPPET_CONTENT_1)); + assertEquals(TEST_SNIPPET_TITLE_1, snippet.getTitle()); + assertEquals(TEST_SNIPPET_FILE_NAME_1, snippet.getFileName()); assertNull(snippet.getContent()); deleteSnippet(snippet); @@ -58,7 +65,9 @@ public void testCreate() throws GitLabApiException { @Test public void testDelete() throws GitLabApiException { - Snippet snippet = createSnippet(new Snippet("A Small Snippet", "Snippet.java", "Java content")); + Snippet snippet = createSnippet(new Snippet(TEST_SNIPPET_TITLE_1, + TEST_SNIPPET_FILE_NAME_1, + TEST_SNIPPET_CONTENT_1)); deleteSnippet(snippet); SnippetsApi api = gitLabApi.getSnippetApi(); @@ -70,15 +79,19 @@ public void testDelete() throws GitLabApiException { @Test public void testList() throws GitLabApiException { - Snippet snippet1 = createSnippet(new Snippet("Snippet 1", "Snippet.java", "Java content")); - Snippet snippet2 = createSnippet(new Snippet("Snippet 2", "Snippet.java", "Another java content")); + Snippet snippet1 = createSnippet(new Snippet(TEST_SNIPPET_TITLE_1, + TEST_SNIPPET_FILE_NAME_1, + TEST_SNIPPET_CONTENT_1)); + Snippet snippet2 = createSnippet(new Snippet(TEST_SNIPPET_TITLE_1, + TEST_SNIPPET_FILE_NAME_1, + TEST_SNIPPET_CONTENT_2)); SnippetsApi api = gitLabApi.getSnippetApi(); - List snippets = api.getSnippets(); + List snippets = api.getSnippets(true); assertTrue(snippets.size() >= 2); - assertTrue(snippets.stream().anyMatch(s -> s.getContent().equals("Java content"))); - assertTrue(snippets.stream().anyMatch(s -> s.getContent().equals("Another java content"))); + assertTrue(snippets.stream().anyMatch(s -> s.getContent().equals(TEST_SNIPPET_CONTENT_1))); + assertTrue(snippets.stream().anyMatch(s -> s.getContent().equals(TEST_SNIPPET_CONTENT_2))); deleteSnippet(snippet1); @@ -88,29 +101,28 @@ public void testList() throws GitLabApiException { @Test public void testSnippetContent() throws GitLabApiException { Snippet snippet = createSnippet( - new Snippet("Snippet 1", "Snippet.java", "System.out.println(\"\");")); + new Snippet(TEST_SNIPPET_TITLE_1, TEST_SNIPPET_FILE_NAME_1, TEST_SNIPPET_CONTENT_1)); SnippetsApi api = gitLabApi.getSnippetApi(); String snippetContent = api.getSnippetContent(snippet.getId()); - assertEquals("System.out.println(\"\");", snippetContent); + assertEquals(TEST_SNIPPET_CONTENT_1, snippetContent); deleteSnippet(snippet); } @Test public void testRetrieveSnippet() throws GitLabApiException { - Snippet snippet = createSnippet (new Snippet( - "Xml Snippet", - "file.xml", - "1", + Snippet snippet = createSnippet (new Snippet(TEST_SNIPPET_TITLE_1, + TEST_SNIPPET_FILE_NAME_1, + TEST_SNIPPET_CONTENT_1, Visibility.INTERNAL, - "Description")); + TEST_SNIPPET_DESCRIPTION_1)); SnippetsApi api = gitLabApi.getSnippetApi(); - Snippet savedSnippet = api.getSnippet(snippet.getId()); + Snippet savedSnippet = api.getSnippet(snippet.getId(), true); - assertEquals("Xml Snippet", savedSnippet.getTitle()); - assertEquals("file.xml", savedSnippet.getFileName()); - assertEquals("1", savedSnippet.getContent()); - assertEquals("Description", savedSnippet.getDescription()); + assertEquals(TEST_SNIPPET_TITLE_1, savedSnippet.getTitle()); + assertEquals(TEST_SNIPPET_FILE_NAME_1, savedSnippet.getFileName()); + assertEquals(TEST_SNIPPET_CONTENT_1, savedSnippet.getContent()); + assertEquals(TEST_SNIPPET_DESCRIPTION_1, savedSnippet.getDescription()); deleteSnippet(savedSnippet); }