Skip to content

Commit 993281b

Browse files
committed
new newsletters & subscriptions API
1 parent 4dc14e0 commit 993281b

File tree

7 files changed

+299
-216
lines changed

7 files changed

+299
-216
lines changed

README.md

Lines changed: 69 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -89,16 +89,17 @@ console.log(newsletter._response.status); // 200
8989
- [`cloudnode.account.updateIdentity(username, [name])`](#cloudnodeaccountupdateidentityusername-name)
9090
- [`cloudnode.auth.login(user, password)`](#cloudnodeauthloginuser-password)
9191
- [`cloudnode.auth.register(username, email, password)`](#cloudnodeauthregisterusername-email-password)
92-
- [`cloudnode.newsletter.get(id)`](#cloudnodenewslettergetid)
93-
- [`cloudnode.newsletter.list([limit], [page])`](#cloudnodenewsletterlistlimit-page)
94-
- [`cloudnode.newsletter.subscribe(id, email, [data])`](#cloudnodenewslettersubscribeid-email-data)
95-
- [`cloudnode.newsletters.listSubscriptions([limit], [page])`](#cloudnodenewsletterslistsubscriptionslimit-page)
96-
- [`cloudnode.newsletters.unsubscribe(subscription)`](#cloudnodenewslettersunsubscribesubscription)
92+
- [`cloudnode.newsletters.get(id)`](#cloudnodenewslettersgetid)
93+
- [`cloudnode.newsletters.list([limit], [page])`](#cloudnodenewsletterslistlimit-page)
9794
- [`cloudnode.projects.create(name)`](#cloudnodeprojectscreatename)
9895
- [`cloudnode.projects.delete(id)`](#cloudnodeprojectsdeleteid)
9996
- [`cloudnode.projects.get(id)`](#cloudnodeprojectsgetid)
10097
- [`cloudnode.projects.list([limit], [page])`](#cloudnodeprojectslistlimit-page)
10198
- [`cloudnode.projects.update(id, name)`](#cloudnodeprojectsupdateid-name)
99+
- [`cloudnode.subscriptions.create(newsletter, email, [data])`](#cloudnodesubscriptionscreatenewsletter-email-data)
100+
- [`cloudnode.subscriptions.delete(id)`](#cloudnodesubscriptionsdeleteid)
101+
- [`cloudnode.subscriptions.get(id)`](#cloudnodesubscriptionsgetid)
102+
- [`cloudnode.subscriptions.list([limit], [page])`](#cloudnodesubscriptionslistlimit-page)
102103
- [`cloudnode.token.create(permissions, lifetime, [note])`](#cloudnodetokencreatepermissions-lifetime-note)
103104
- [`cloudnode.token.get(id)`](#cloudnodetokengetid)
104105
- [`cloudnode.token.getRequest(id, request)`](#cloudnodetokengetrequestid-request)
@@ -376,9 +377,9 @@ Create an account and session. After signing up, a welcome e-mail is sent to con
376377
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "INTERNAL_SERVER_ERROR"}</code>
377378
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "MAINTENANCE"}</code>
378379

379-
<a name="cloudnodenewslettergetid"></a>
380+
<a name="cloudnodenewslettersgetid"></a>
380381

381-
### `cloudnode.newsletter.get(id)`
382+
### `cloudnode.newsletters.get(id)`
382383

383384
Get newsletter
384385

@@ -389,9 +390,9 @@ Get newsletter
389390
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "INTERNAL_SERVER_ERROR"}</code>
390391
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "MAINTENANCE"}</code>
391392

392-
<a name="cloudnodenewsletterlistlimit-page"></a>
393+
<a name="cloudnodenewsletterslistlimit-page"></a>
393394

394-
### `cloudnode.newsletter.list([limit], [page])`
395+
### `cloudnode.newsletters.list([limit], [page])`
395396

396397
List newsletters
397398

@@ -402,52 +403,6 @@ List newsletters
402403
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "INTERNAL_SERVER_ERROR"}</code>
403404
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "MAINTENANCE"}</code>
404405

405-
<a name="cloudnodenewslettersubscribeid-email-data"></a>
406-
407-
### `cloudnode.newsletter.subscribe(id, email, [data])`
408-
409-
Subscribe to newsletter
410-
411-
- `id` <code>[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)</code> A newsletter ID.
412-
- `email` <code>[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)</code> Subscriber's email address.
413-
- `data` <code>[Record](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)&lt;[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) | [boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)></code> Additional data that this newsletter requires.
414-
- Returns: <code>[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;[Cloudnode.ApiResponse](#class-cloudnodeapiresponset)&lt;[Cloudnode.NewsletterSubscription](#interface-cloudnodenewslettersubscription)>></code>
415-
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "RESOURCE_NOT_FOUND"}</code>
416-
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "INVALID_DATA"}</code>
417-
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "CONFLICT"}</code>
418-
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "RATE_LIMITED"}</code>
419-
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "INTERNAL_SERVER_ERROR"}</code>
420-
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "MAINTENANCE"}</code>
421-
422-
<a name="cloudnodenewsletterslistsubscriptionslimit-page"></a>
423-
424-
### `cloudnode.newsletters.listSubscriptions([limit], [page])`
425-
426-
List subscriptions of the authenticated user. Requires token with scope `newsletter.subscriptions.list.own`.
427-
428-
- `limit` <code>[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)</code> The number of subscriptions to return per page. No more than 50. Default: `10`
429-
- `page` <code>[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)</code> The page number. No more than 2³² (4294967296). Default: `1`
430-
- Returns: <code>[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;[Cloudnode.ApiResponse](#class-cloudnodeapiresponset)&lt;[Cloudnode.PaginatedData](#interface-cloudnodepaginateddatat)&lt;[Cloudnode.DatedNewsletterSubscription[]](#interface-cloudnodedatednewslettersubscription)>>></code>
431-
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "UNAUTHORIZED"}</code>
432-
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "NO_PERMISSION"}</code>
433-
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "RATE_LIMITED"}</code>
434-
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "INTERNAL_SERVER_ERROR"}</code>
435-
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "MAINTENANCE"}</code>
436-
437-
<a name="cloudnodenewslettersunsubscribesubscription"></a>
438-
439-
### `cloudnode.newsletters.unsubscribe(subscription)`
440-
441-
Revoke a subscription (unsubscribe)
442-
443-
- `subscription` <code>[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)</code> The ID of the subscription to revoke.
444-
- Returns: <code>[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;[Cloudnode.ApiResponse](#class-cloudnodeapiresponset)&lt;[void](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)>></code>
445-
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "RESOURCE_NOT_FOUND"}</code>
446-
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "INVALID_DATA"}</code>
447-
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "RATE_LIMITED"}</code>
448-
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "INTERNAL_SERVER_ERROR"}</code>
449-
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "MAINTENANCE"}</code>
450-
451406
<a name="cloudnodeprojectscreatename"></a>
452407

453408
### `cloudnode.projects.create(name)`
@@ -525,6 +480,65 @@ Update a project. Requires token with scope `projects.update.own`.
525480
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "INTERNAL_SERVER_ERROR"}</code>
526481
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "MAINTENANCE"}</code>
527482

483+
<a name="cloudnodesubscriptionscreatenewsletter-email-data"></a>
484+
485+
### `cloudnode.subscriptions.create(newsletter, email, [data])`
486+
487+
Subscribe to newsletter
488+
489+
- `newsletter` <code>[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)</code> The ID of the newsletter to subscribe to.
490+
- `email` <code>[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)</code> Subscriber's email address.
491+
- `data` <code>[Record](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)&lt;[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) | [boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)></code> Additional data that this newsletter requires.
492+
- Returns: <code>[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;[Cloudnode.ApiResponse](#class-cloudnodeapiresponset)&lt;[Cloudnode.NewsletterSubscription](#interface-cloudnodenewslettersubscription)>></code>
493+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "RESOURCE_NOT_FOUND"}</code>
494+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "INVALID_DATA"}</code>
495+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "CONFLICT"}</code>
496+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "RATE_LIMITED"}</code>
497+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "INTERNAL_SERVER_ERROR"}</code>
498+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "MAINTENANCE"}</code>
499+
500+
<a name="cloudnodesubscriptionsdeleteid"></a>
501+
502+
### `cloudnode.subscriptions.delete(id)`
503+
504+
Unsubscribe from newsletter
505+
506+
- `id` <code>[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)</code> The ID of the subscription to revoke.
507+
- Returns: <code>[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;[Cloudnode.ApiResponse](#class-cloudnodeapiresponset)&lt;[void](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)>></code>
508+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "RESOURCE_NOT_FOUND"}</code>
509+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "INVALID_DATA"}</code>
510+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "RATE_LIMITED"}</code>
511+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "INTERNAL_SERVER_ERROR"}</code>
512+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "MAINTENANCE"}</code>
513+
514+
<a name="cloudnodesubscriptionsgetid"></a>
515+
516+
### `cloudnode.subscriptions.get(id)`
517+
518+
Get newsletter subscription
519+
520+
- `id` <code>[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)</code> The ID of the subscription to get.
521+
- Returns: <code>[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;[Cloudnode.ApiResponse](#class-cloudnodeapiresponset)&lt;[Cloudnode.DatedNewsletterSubscription](#interface-cloudnodedatednewslettersubscription)>></code>
522+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "RESOURCE_NOT_FOUND"}</code>
523+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "RATE_LIMITED"}</code>
524+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "INTERNAL_SERVER_ERROR"}</code>
525+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "MAINTENANCE"}</code>
526+
527+
<a name="cloudnodesubscriptionslistlimit-page"></a>
528+
529+
### `cloudnode.subscriptions.list([limit], [page])`
530+
531+
List newsletter subscriptions. Requires token with scope `newsletter.subscriptions.list.own`.
532+
533+
- `limit` <code>[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)</code> The number of subscriptions to return per page. No more than 50. Default: `10`
534+
- `page` <code>[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)</code> The page number. No more than 2³² (4294967296). Default: `1`
535+
- Returns: <code>[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;[Cloudnode.ApiResponse](#class-cloudnodeapiresponset)&lt;[Cloudnode.PaginatedData](#interface-cloudnodepaginateddatat)&lt;[Cloudnode.DatedNewsletterSubscription[]](#interface-cloudnodedatednewslettersubscription)>>></code>
536+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "UNAUTHORIZED"}</code>
537+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "NO_PERMISSION"}</code>
538+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "RATE_LIMITED"}</code>
539+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "INTERNAL_SERVER_ERROR"}</code>
540+
- Throws: <code>[Cloudnode.Error](#interface-cloudnodeerror) & {code: "MAINTENANCE"}</code>
541+
528542
<a name="cloudnodetokencreatepermissions-lifetime-note"></a>
529543

530544
### `cloudnode.token.create(permissions, lifetime, [note])`

0 commit comments

Comments
 (0)