From ec5f3988b7b7035da3f3a80939cb25f55437e992 Mon Sep 17 00:00:00 2001 From: Justin Date: Fri, 30 Mar 2018 10:21:05 -0400 Subject: [PATCH] Adding project snippets correctly --- README.md | 1 + src/index.js | 1 + src/services/ProjectSnippets.js | 60 +++++++++++++++++++++++++++++++++ src/services/index.js | 1 + 4 files changed, 63 insertions(+) create mode 100644 src/services/ProjectSnippets.js diff --git a/README.md b/README.md index af3b1ae2..5d8c48f8 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,7 @@ ProjectHooks ProjectMembers ProjectMilestones ProjectSnippets +ProjectSnippetNotes ProjectSnippetAwardEmojis ProtectedBranches ProjectVariables diff --git a/src/index.js b/src/index.js index a4ef24de..554f0752 100644 --- a/src/index.js +++ b/src/index.js @@ -55,6 +55,7 @@ export const ProjectsBundle = init(Pick(APIServices, [ 'ProjectHooks', 'ProjectMembers', 'ProjectMilestones', + 'ProjectSnippet', 'ProjectSnippetNotes', 'ProtectedBranches', 'ProjectVariables', diff --git a/src/services/ProjectSnippets.js b/src/services/ProjectSnippets.js new file mode 100644 index 00000000..b393f96a --- /dev/null +++ b/src/services/ProjectSnippets.js @@ -0,0 +1,60 @@ +import { BaseService, RequestHelper } from '../infrastructure'; + +const VISIBILITY_LEVELS = { + PRIVATE: 'private', + INTERNAL: 'internal', + PUBLIC: 'public', +}; + +class ProjectSnippets extends BaseService { + all(projectId, options = {}) { + const pId = encodeURIComponent(projectId); + + return RequestHelper.get(this, `projects/${pId}/snippets`, options); + } + + content(projectId, snippetId) { + const [pId, sId] = [projectId, snippetId].map(encodeURIComponent); + + return RequestHelper.get(this, `projects/${pId}/snippets/${sId}/raw`); + } + + create(projectId, title, fileName, code, visibility, options = {}) { + const pId = encodeURIComponent(projectId); + + return RequestHelper.post(this, `projects/${pId}/snippets`, { + title, + fileName, + code, + visibility, + ...options, + }); + } + + edit(projectId, options) { + const pId = encodeURIComponent(projectId); + + return RequestHelper.put(this, `projects/${pId}/snippets`, options); + } + + remove(projectId) { + const pId = encodeURIComponent(projectId); + + return RequestHelper.delete(this, `projects/${pId}/snippets`); + } + + show(projectId, snippetId) { + const [pId, sId] = [projectId, snippetId].map(encodeURIComponent); + + return RequestHelper.get(this, `projects/${pId}/snippets/${sId}`); + } + + userAgentDetails(projectId, snippetId) { + const [pId, sId] = [projectId, snippetId].map(encodeURIComponent); + + return RequestHelper.get(this, `projects/${pId}/snippets/${sId}/user_agent_detail`); + } +} + +export default ProjectSnippets; +export { VISIBILITY_LEVELS }; diff --git a/src/services/index.js b/src/services/index.js index da799193..aff502ab 100644 --- a/src/services/index.js +++ b/src/services/index.js @@ -44,6 +44,7 @@ export ProjectIssueBoards from './ProjectIssueBoards'; export ProjectHooks from './ProjectHooks'; export ProjectMembers from './ProjectMembers'; export ProjectMilestones from './ProjectMilestones'; +export ProjectSnippet from './ProjectSnippet'; export ProjectSnippetNotes from './ProjectSnippetNotes'; export ProjectSnippetAwardEmojis from './ProjectSnippetAwardEmojis'; export ProtectedBranches from './ProtectedBranches';