Skip to content

Commit

Permalink
Merge pull request #14 from CalderaWP/feature/12
Browse files Browse the repository at this point in the history
Entry delete and resend #12
  • Loading branch information
Shelob9 authored Aug 22, 2018
2 parents 4a11c6f + 5b20a4e commit 85f4193
Show file tree
Hide file tree
Showing 7 changed files with 262 additions and 192 deletions.
350 changes: 164 additions & 186 deletions .idea/workspace.xml

Large diffs are not rendered by default.

45 changes: 45 additions & 0 deletions __tests__/EntriesClient.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,11 @@ describe( 'Entries client', () => {
const client = new EntriesClient('https://hiroy.club/wp-json/cf-api/v1');
expect( client.getEntryEndpoint(formId,27)).toEqual('entries/CF5b197831b60ae/27');
});

it( 'Resend entry URL', () => {
const client = new EntriesClient('https://hiroy.club/wp-json/cf-api/v1');
expect( client.getEntryResendEndpoint(formId,27)).toEqual('entries/CF5b197831b60ae/27/resend');
});
});

describe( 'getting entries', () => {
Expand All @@ -67,4 +72,44 @@ describe( 'Entries client', () => {
});
});

describe( 'Resending entries', () => {
it( 'Resends a single entry', () => {
const r = {
resent: true,
entry_id: '26'
};
fetch.mockResponseOnce(new Response(JSON.stringify(r)));
const client = new EntriesClient('https://hiroy.club/wp-json/cf-api/v1');
client.resendEntry(formId,26).then( response => {
expect( response ).toEqual({});
},error => {});
expect(fetch.mock.calls).toHaveLength(1);
});
});

describe( 'deleting entries', () => {
it( 'Deletes a single entry', () => {
const r = {
message: 'Entry Deleted'
};
fetch.mockResponseOnce(new Response(JSON.stringify(r)));
const client = new EntriesClient('https://hiroy.club/wp-json/cf-api/v1');
client.deleteEntry(formId,26).then( response => {
expect( response ).toEqual(r);
},error => {});
expect(fetch.mock.calls).toHaveLength(1);
});

it( 'Deletes all entries of form', () => {
const r = {
message: 'All Entry Deleted'
};
fetch.mockResponseOnce(new Response(JSON.stringify(r)));
const client = new EntriesClient('https://hiroy.club/wp-json/cf-api/v1');
client.deleteEntries(formId).then( response => {
expect( response ).toEqual(r);
},error => {});
expect(fetch.mock.calls).toHaveLength(1);
});
});
});
3 changes: 3 additions & 0 deletions docs/file/src/EntriesClient.js.html
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@
}, this.getEntryEndpoint(formId, entryId));
}

d


/**
* The endpoint URI for a collection of entries for one form.

Expand Down
4 changes: 2 additions & 2 deletions docs/index.json
Original file line number Diff line number Diff line change
Expand Up @@ -1199,7 +1199,7 @@
"__docId__": 65,
"kind": "file",
"name": "src/EntriesClient.js",
"content": "//@flow\nimport {WpClient} from './WpClient';\n\n/**\n * Client for accessing Caldera Forms entry data via Caldera Forms REST API\n */\nexport class EntriesClient extends WpClient {\n\n\t/**\n\t * Get one page of entries for a form\n\t *\n\t * @param {String} formId ID of form to get entries for.\n\t * @param {number} page Optional. Which page of entries to get. Default is 1.\n\t * @return {Promise<any>}\n\t */\n\tgetEntries(formId: string, page: number = 1): Promise<any> {\n\t\treturn this.reqGet({\n\t\t\tpage,\n\t\t\t_wpnonce: this.nonce\n\t\t}, this.getEntriesEndpoint(formId));\n\t}\n\n\t/**\n\t * Get a single entry of a form\n\t *\n\t * @param {String} formId ID of form to get entries for.\n\t * @param {String} entryId ID of entry to find.\n\t * @return {Promise<any>}\n\t */\n\tgetEntry(formId: string, entryId: number): Promise<any> {\n\t\treturn this.reqGet({\n\t\t\t_wpnonce: this.nonce\n\t\t}, this.getEntryEndpoint(formId, entryId));\n\t}\n\n\t/**\n\t * The endpoint URI for a collection of entries for one form.\n\n\t * @param {String} formId ID of form to get entries for.\n\t * @return {string}\n\t */\n\tgetEntriesEndpoint(formId: string): string {\n\t\treturn `entries/${formId}`;\n\t}\n\n\t/**\n\t * The endpoint URI for single entries\n\t *\n\t * @param {String} formId ID of form to get entries for.\n\t * @param {String} entryId ID of entry to find.\n\t * @return {string}\n\t */\n\tgetEntryEndpoint(formId: string, entryId: number): string {\n\t\treturn `${this.getEntriesEndpoint(formId)}/${entryId}`;\n\t}\n\n\n}",
"content": "//@flow\nimport {WpClient} from './WpClient';\n\n/**\n * Client for accessing Caldera Forms entry data via Caldera Forms REST API\n */\nexport class EntriesClient extends WpClient {\n\n\t/**\n\t * Get one page of entries for a form\n\t *\n\t * @param {String} formId ID of form to get entries for.\n\t * @param {number} page Optional. Which page of entries to get. Default is 1.\n\t * @return {Promise<any>}\n\t */\n\tgetEntries(formId: string, page: number = 1): Promise<any> {\n\t\treturn this.reqGet({\n\t\t\tpage,\n\t\t\t_wpnonce: this.nonce\n\t\t}, this.getEntriesEndpoint(formId));\n\t}\n\n\t/**\n\t * Get a single entry of a form\n\t *\n\t * @param {String} formId ID of form to get entries for.\n\t * @param {String} entryId ID of entry to find.\n\t * @return {Promise<any>}\n\t */\n\tgetEntry(formId: string, entryId: number): Promise<any> {\n\t\treturn this.reqGet({\n\t\t\t_wpnonce: this.nonce\n\t\t}, this.getEntryEndpoint(formId, entryId));\n\t}\n\n\td\n\n\n\t/**\n\t * The endpoint URI for a collection of entries for one form.\n\n\t * @param {String} formId ID of form to get entries for.\n\t * @return {string}\n\t */\n\tgetEntriesEndpoint(formId: string): string {\n\t\treturn `entries/${formId}`;\n\t}\n\n\t/**\n\t * The endpoint URI for single entries\n\t *\n\t * @param {String} formId ID of form to get entries for.\n\t * @param {String} entryId ID of entry to find.\n\t * @return {string}\n\t */\n\tgetEntryEndpoint(formId: string, entryId: number): string {\n\t\treturn `${this.getEntriesEndpoint(formId)}/${entryId}`;\n\t}\n\n\n}",
"static": true,
"longname": "/Users/josh/caldera-js/api-client/src/EntriesClient.js",
"access": "public",
Expand Down Expand Up @@ -1937,7 +1937,7 @@
},
{
"kind": "packageJSON",
"content": "{\n \"name\": \"@caldera-labs/api-client\",\n \"version\": \"0.4.1\",\n \"description\": \"API client for Caldera Forms and Caldera Forms Pro\",\n \"main\": \"./dist/index.js\",\n \"scripts\": {\n \"build\": \"npm run build:pre && npm run build:compile && npm run build:post\",\n \"build:pre\": \"npm run test:once\",\n \"build:compile\": \"./node_modules/.bin/babel -d dist src/\",\n \"build:post\": \"npm run compress && npm run document\",\n \"compress\": \" uglifyjs-folder dist -c -m --source-map -o dist/index.min.js\",\n \"test\": \"jest --watch\",\n \"test:once\": \"jest\",\n \"test:coverage\": \"jest --coverage\",\n \"coveralls\": \"cat ./coverage/lcov.info | node node_modules/.bin/coveralls\",\n \"prepublish\": \"npm run build\",\n \"document\": \"./node_modules/.bin/esdoc\",\n \"lint\": \"eslint src/**, __tests__/**\",\n \"lint:watch\": \"esw src/**, __tests__/** --fix --watch\",\n \"lint:fix\": \"eslint src/**, __tests__/** --fix \",\n \"flow:watch\": \"flow-watch\",\n \"flow\": \"flow \",\n \"release\": \"npm run release:patch\",\n \"release:minor\": \"npm version minor -m \\\"version %s\\\" && npm publish\",\n \"release:patch\": \"npm version patch -m \\\"version %s\\\" && npm publish\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/calderawp/caldera-api-client.git\"\n },\n \"keywords\": [\n \"es6\",\n \"boilerplate\",\n \"npm\",\n \"module\",\n \"npm-module\"\n ],\n \"author\": \"Josh Pollock <[email protected]>\",\n \"license\": \"GPL-2.0\",\n \"bugs\": {\n \"url\": \"https://github.com/calderawp/caldera-api-client/issues\"\n },\n \"homepage\": \"https://calderalabs.org/caldera-api-client/\",\n \"dependencies\": {},\n \"devDependencies\": {\n \"babel-eslint\": \"^8.2.3\",\n \"babel-preset-flow\": \"^6.23.0\",\n \"eslint\": \"^4.19.1\",\n \"eslint-config-airbnb\": \"^16.1.0\",\n \"eslint-plugin-flowtype\": \"^2.49.3\",\n \"eslint-plugin-import\": \"^2.12.0\",\n \"eslint-plugin-jsx-a11y\": \"^6.0.3\",\n \"eslint-plugin-react\": \"^7.9.1\",\n \"eslint-watch\": \"^3.1.5\",\n \"flow-bin\": \"^0.74.0\",\n \"flow-watch\": \"^1.1.3\",\n \"jest-fetch-mock\": \"^1.6.3\",\n \"locutus\": \"^2.0.9\",\n \"uglify-js\": \"^3.4.0\",\n \"uglifyjs-folder\": \"^1.5.1\",\n \"babel-cli\": \"^6.26.0\",\n \"babel-jest\": \"^20.0.3\",\n \"babel-preset-es2015\": \"^6.24.1\",\n \"babel-preset-stage-2\": \"^6.24.1\",\n \"coveralls\": \"^2.13.3\",\n \"esdoc\": \"^1.1.0\",\n \"esdoc-flow-plugin\": \"^1.0.0\",\n \"esdoc-jsx-plugin\": \"^1.0.0\",\n \"esdoc-standard-plugin\": \"^1.0.0\",\n \"eslint-plugin-jest\": \"^21.17.0\",\n \"jest-cli\": \"^23.2\",\n \"istanbul\": \"^0.4.5\",\n \"istanbul-api\": \"1.2.2\",\n \"istanbul-reports\": \"1.1.4\"\n },\n \"standard\": {\n \"plugins\": [\n \"flowtype\"\n ],\n \"parser\": \"babel-eslint\"\n },\n \"jest\": {\n \"collectCoverageFrom\": [\n \"src/**/*.js\"\n ],\n \"coverageThreshold\": {\n \"global\": {\n \"statements\": 85,\n \"branches\": 75,\n \"functions\": 85,\n \"lines\": 85\n }\n },\n \"automock\": false,\n \"setupFiles\": [\n \"./setupJest.js\"\n ]\n }\n}\n",
"content": "{\n \"name\": \"@caldera-labs/api-client\",\n \"version\": \"0.5.0\",\n \"description\": \"API client for Caldera Forms and Caldera Forms Pro\",\n \"main\": \"./dist/index.js\",\n \"scripts\": {\n \"build\": \"npm run build:pre && npm run build:compile && npm run build:post\",\n \"build:pre\": \"npm run test:once\",\n \"build:compile\": \"./node_modules/.bin/babel -d dist src/\",\n \"build:post\": \"npm run compress && npm run document\",\n \"compress\": \" uglifyjs-folder dist -c -m --source-map -o dist/index.min.js\",\n \"test\": \"jest --watch\",\n \"test:once\": \"jest\",\n \"test:coverage\": \"jest --coverage\",\n \"coveralls\": \"cat ./coverage/lcov.info | node node_modules/.bin/coveralls\",\n \"prepublish\": \"npm run build\",\n \"document\": \"./node_modules/.bin/esdoc\",\n \"lint\": \"eslint src/**, __tests__/**\",\n \"lint:watch\": \"esw src/**, __tests__/** --fix --watch\",\n \"lint:fix\": \"eslint src/**, __tests__/** --fix \",\n \"flow:watch\": \"flow-watch\",\n \"flow\": \"flow \",\n \"release\": \"npm run release:patch\",\n \"release:minor\": \"npm version minor -m \\\"version %s\\\" && npm publish\",\n \"release:patch\": \"npm version patch -m \\\"version %s\\\" && npm publish\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/calderawp/caldera-api-client.git\"\n },\n \"keywords\": [\n \"es6\",\n \"boilerplate\",\n \"npm\",\n \"module\",\n \"npm-module\"\n ],\n \"author\": \"Josh Pollock <[email protected]>\",\n \"license\": \"GPL-2.0\",\n \"bugs\": {\n \"url\": \"https://github.com/calderawp/caldera-api-client/issues\"\n },\n \"homepage\": \"https://calderalabs.org/caldera-api-client/\",\n \"dependencies\": {},\n \"devDependencies\": {\n \"babel-eslint\": \"^8.2.3\",\n \"babel-preset-flow\": \"^6.23.0\",\n \"eslint\": \"^4.19.1\",\n \"eslint-config-airbnb\": \"^16.1.0\",\n \"eslint-plugin-flowtype\": \"^2.49.3\",\n \"eslint-plugin-import\": \"^2.12.0\",\n \"eslint-plugin-jsx-a11y\": \"^6.0.3\",\n \"eslint-plugin-react\": \"^7.9.1\",\n \"eslint-watch\": \"^3.1.5\",\n \"flow-bin\": \"^0.74.0\",\n \"flow-watch\": \"^1.1.3\",\n \"jest-fetch-mock\": \"^1.6.3\",\n \"locutus\": \"^2.0.9\",\n \"uglify-js\": \"^3.4.0\",\n \"uglifyjs-folder\": \"^1.5.1\",\n \"babel-cli\": \"^6.26.0\",\n \"babel-jest\": \"^20.0.3\",\n \"babel-preset-es2015\": \"^6.24.1\",\n \"babel-preset-stage-2\": \"^6.24.1\",\n \"coveralls\": \"^2.13.3\",\n \"esdoc\": \"^1.1.0\",\n \"esdoc-flow-plugin\": \"^1.0.0\",\n \"esdoc-jsx-plugin\": \"^1.0.0\",\n \"esdoc-standard-plugin\": \"^1.0.0\",\n \"eslint-plugin-jest\": \"^21.17.0\",\n \"jest-cli\": \"^23.2\",\n \"istanbul\": \"^0.4.5\",\n \"istanbul-api\": \"1.2.2\",\n \"istanbul-reports\": \"1.1.4\"\n },\n \"standard\": {\n \"plugins\": [\n \"flowtype\"\n ],\n \"parser\": \"babel-eslint\"\n },\n \"jest\": {\n \"collectCoverageFrom\": [\n \"src/**/*.js\"\n ],\n \"coverageThreshold\": {\n \"global\": {\n \"statements\": 85,\n \"branches\": 75,\n \"functions\": 85,\n \"lines\": 85\n }\n },\n \"automock\": false,\n \"setupFiles\": [\n \"./setupJest.js\"\n ]\n }\n}\n",
"longname": "/Users/josh/caldera-js/api-client/package.json",
"name": "package.json",
"static": true,
Expand Down
6 changes: 3 additions & 3 deletions docs/source.html
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@
<td data-ice="filePath"><span><a href="file/src/EntriesClient.js.html">src/EntriesClient.js</a></span></td>
<td data-ice="identifier" class="identifiers"><span><a href="class/src/EntriesClient.js~EntriesClient.html">EntriesClient</a></span></td>
<td class="coverage"><span data-ice="coverage">100 %</span><span data-ice="coverageCount" class="coverage-count">5/5</span></td>
<td style="display: none;" data-ice="size">1432 byte</td>
<td style="display: none;" data-ice="lines">57</td>
<td style="display: none;" data-ice="updated">2018-07-02 12:51:36 (UTC)</td>
<td style="display: none;" data-ice="size">1437 byte</td>
<td style="display: none;" data-ice="lines">60</td>
<td style="display: none;" data-ice="updated">2018-08-04 21:31:04 (UTC)</td>
</tr>
<tr data-ice="file">
<td data-ice="filePath"><span><a href="file/src/GeneralSettingClient.js.html">src/GeneralSettingClient.js</a></span></td>
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@caldera-labs/api-client",
"version": "0.4.1",
"version": "0.5.0",
"description": "API client for Caldera Forms and Caldera Forms Pro",
"main": "./dist/index.js",
"scripts": {
Expand Down
44 changes: 44 additions & 0 deletions src/EntriesClient.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,39 @@ export class EntriesClient extends WpClient {
}, this.getEntryEndpoint(formId, entryId));
}

/**
* Delete a single entry of a form
*
* @param {String} formId ID of form to get entries for.
* @param {String} entryId ID of entry to find.
* @return {Promise<any>}
*/
deleteEntry( formId: string, entryId: number ): Promise<any> {
return this.reqDelete(this.getEntryEndpoint( formId, entryId ) );
}

/**
* Delete all entries of a form
*
* @param {String} formId ID of form to get entries for.
* @return {Promise<any>}
*/
deleteEntries( formId: string ): Promise<any> {
return this.reqDelete(this.getEntriesEndpoint( formId ) );
}

/**
* Resent a single entry of a form
*
* @param {String} formId ID of form to get entries for.
* @param {String} entryId ID of entry to find.
* @return {Promise<any>}
*/
resendEntry( formId: string, entryId: number ): Promise<any> {
return this.reqPost(this.getEntryEndpoint( formId, entryId ) );
}


/**
* The endpoint URI for a collection of entries for one form.
Expand All @@ -54,5 +87,16 @@ export class EntriesClient extends WpClient {
return `${this.getEntriesEndpoint(formId)}/${entryId}`;
}

/**
* The resend endpoint URI for single entries
*
* @param {String} formId ID of form to get entries for.
* @param {String} entryId ID of entry to find.
* @return {string}
*/
getEntryResendEndpoint(formId: string, entryId: number): string {
return `${this.getEntriesEndpoint(formId)}/${entryId}/resend`;
}


}

0 comments on commit 85f4193

Please sign in to comment.