Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing methods #72

Open
sumitsaurabh927 opened this issue Sep 18, 2023 · 6 comments
Open

Missing methods #72

sumitsaurabh927 opened this issue Sep 18, 2023 · 6 comments

Comments

@sumitsaurabh927
Copy link

Some endpoints of the following section can't be hit from this SDK. Please ensure that all the SDK methods are up to date. I'm adding here a list of sections to check/update:

  • Notification templates
  • Integrations
  • Layouts
  • Inbound Parse
  • Environments
  • Changes
  • Execution details
  • Feeds
  • Messages
  • Blueprints

Some of these methods already exist. No need to change/update them. This is just to bring every SDK we have on par with all the methods available.

Check all the endpoints here and add the missing ones.

@toddb
Copy link
Collaborator

toddb commented Sep 18, 2023

@sumitsaurabh927 really glad that you are interested in the library and wondering if you would like to help out. You are right that not all endpoints are implemented but that that there are already issues logged #66 #67 #68 #70 and some in your list are already implemented which makes your report a bit misleading (particularly if you scanning the issues as a newbie).

IT would be really helpful if you could do a full reconciliation against the API including the version the API was introduced and last changed. For example, I think you have missed tenants. I'd be really keen to accept this as documentation in a pull request.

Are you interested?

@sumitsaurabh927
Copy link
Author

Hey @toddb I along with my colleagues from the devX team had been working to port documentation. Having been working on api reference documentation, it came to my attention that not all the endpoints were listed in the readme and you're right, I should have made a detailed issue listing actual missing endpoints. I'll be updating the issue now.

Unfortunately, my plate is a little full right now, can you update it once I've updated the issue?

@toddb
Copy link
Collaborator

toddb commented Sep 18, 2023

@sumitsaurabh927 Could you tell me a little more about what you are doing around porting api documentation? I can't tell if you are working on the Novu documentation itself or a more general tool. Could it be of help to use here? or for Novu themselves? SDK libraries really struggle to know when to make changes (as well as the back-filling problem we currently have).

@sumitsaurabh927
Copy link
Author

Hey @toddb sorry if my language created confusion for you. What I meant was I was working on the documentation. One of the tasks assigned to me was adding all the SDK methods for all our SDKs.


When I came to the .NET SDK, I noticed that some endpoints weren't implemented here and I was having trouble with adding them to our docs.


For example - See in the images below, we don't have a .NET version of Get Subscribers, like we do for Create Subscriber.
SCR-20230920-oqxb


SCR-20230920-oqti


This is why I created this issue so that someone looking to contribute can compare all the available endpoints and all the implemented ones and add the missing ones.

I've identified the following ones that aren't present in the .Net SDK:

  • Get subscribers
  • Bulk create subscribers
  • Get subscribers
  • Update subscribers
  • Update subscriber credentials
  • Delete subscriber credentials by providerId
  • Update subscriber online status
  • Get subscriber preferences
  • Update subscriber preference
  • Get in-app notification feed for a particular subscriber
  • Get the unseen in-app notifications count for subscribers feed
  • Mark a subscriber feed message as seen
  • Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed.
  • Mark message action as seen
  • Handle providers oauth redirect
  • Handle chat oauth
  • And many more from several sections that you can find in our docs.


I was just wondering if you'd maybe implement all these methods so that we can update our docs. 🙂

@adelinn
Copy link

adelinn commented Nov 14, 2023

The SDK isn't up to date with the API specification.
I updated the EventTo model here #81

@toddb
Copy link
Collaborator

toddb commented Nov 19, 2023

Compatability: Full, Incomplete, None, Upgrade

  • Full: all attributes are supported on the model on the method/endpoint call
  • None: the method/endpoint is not implemented
  • Upgrade: known changes to the attributes are required that are flagged (practically same as incomplete but
    effectively a NEW placeholder)

Events

HTTP Method Endpoint Description Compatability Notes
POST /v1/events/trigger Trigger event Upgrade
POST /v1/events/trigger/bulk Bulk trigger event Full
POST /v1/events/trigger/broadcast Broadcast event to all Full
DELETE /v1/events/trigger/{transactionId} Cancel triggered event Full

Subscribers

HTTP Method Endpoint Description Compatability Notes
GET /v1/subscribers Get subscribers Full
POST /v1/subscribers Create subscriber Full
GET /v1/subscribers/{subscriberId} Get subscriber Full
PUT /v1/subscribers/{subscriberId} Update subscriber Full
DELETE /v1/subscribers/{subscriberId} Delete subscriber Full
POST /v1/subscribers/bulk Bulk create subscribers Full
PUT /v1/subscribers/{subscriberId}/credentials Update subscriber credentials Full
DELETE /v1/subscribers/{subscriberId}/credentials/{providerId} Delete subscriber credentials by providerId Full
PATCH /v1/subscribers/{subscriberId}/online-status Update subscriber online status Full
GET /v1/subscribers/{subscriberId}/preferences Get subscriber preferences Full
PATCH /v1/subscribers/{subscriberId}/preferences Update subscriber global preferences Full
GET /v1/subscribers/{subscriberId}/preferences/{level} Get subscriber preferences by level Full
PATCH /v1/subscribers/{subscriberId}/preferences/{templateId} Update subscriber preference Full
GET /v1/subscribers/{subscriberId}/notifications/feed Get in-app notification feed for a particular subscriber Full
GET /v1/subscribers/{subscriberId}/notifications/unseen Get the unseen in-app notifications count for subscribers feed Full
POST /v1/subscribers/{subscriberId}/messages/markAs Mark a subscriber feed message as seen Full
POST /v1/subscribers/{subscriberId}/messages/mark-all Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed. Full
POST /v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type} Mark message action as seen Full
GET /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback Handle providers oauth redirect Full
GET /v1/subscribers/{subscriberId}/credentials/{providerId}/oauth Handle chat oauth Full

Topics

HTTP Method Endpoint Description Compatability Notes
POST /v1/topics Topic creation Full
GET /v1/topics Filter topics Full
POST /v1/topics/{topicKey}/subscribers Subscribers addition Full
GET /v1/topics/{topicKey}/subscribers/{externalSubscriberId} Check topic subscriber Full
POST /v1/topics/{topicKey}/subscribers/removal Subscribers removal Full
DELETE /v1/topics/{topicKey} Delete topic Full
GET /v1/topics/{topicKey} Get topic Full
PATCH /v1/topics/{topicKey} Rename a topic Full

Notification

HTTP Method Endpoint Description Compatability Notes
GET /v1/notifications Get notifications Full
GET /v1/notifications/stats Get notification statistics Full
GET /v1/notifications/graph/stats Get notification graph statistics Full
GET /v1/notifications/{notificationId} Get notification Full

Integrations

HTTP Method Endpoint Description Compatability Notes
GET /v1/integrations Get integrations Full
POST /v1/integrations Create integration Full
GET /v1/integrations/active Get active integrations Full
GET /v1/integrations/webhook/provider/{providerId}/status Get webhook support status for provider Full
PUT /v1/integrations/{integrationId} Update integration Full
DELETE /v1/integrations/{integrationId} Delete integration Full
POST /v1/integrations/{integrationId}/set-primary Set integration as primary Full
GET /v1/integrations/{channelType}/limit Full
GET /v1/integrations/in-app/status Full

Layouts

HTTP Method Endpoint Description Compatability Notes
POST /v1/layouts Layout creation Full
GET /v1/layouts Filter layouts Full
GET /v1/layouts/{layoutId} Get layout Full
DELETE /v1/layouts/{layoutId} Delete layout Full
PATCH /v1/layouts/{layoutId} Update a layout Full
POST /v1/layouts/{layoutId}/default Set default layout Full

Workflows

HTTP Method Endpoint Description Compatability Notes
GET /v1/workflows Get workflows Full
POST /v1/workflows Create workflow Full
PUT /v1/workflows/{workflowId} Update workflow Full
DELETE /v1/workflows/{workflowId} Delete workflow Full
GET /v1/workflows/{workflowId} Get workflow Full
PUT /v1/workflows/{workflowId}/status Update workflow status Full

Workflow Groups

HTTP Method Endpoint Description Compatability Notes
POST /v1/notification-groups Create workflow group Full
GET /v1/notification-groups Get workflow groups Full
GET /v1/notification-groups/{id} Get workflow group Full
PATCH /v1/notification-groups/{id} Update workflow group Full
DELETE /v1/notification-groups/{id} Delete workflow group Full

Notes

HTTP Method Endpoint Description Compatability Notes
GET /v1/changes Get changes None
GET /v1/changes/count Get changes count None
POST /v1/changes/bulk/apply Apply changes None
POST /v1/changes/{changeId}/apply Apply change None

Environments

HTTP Method Endpoint Description Compatability Notes
GET /v1/environments/me Get current environment None
POST /v1/environments Create environment None
GET /v1/environments Get environments None
GET /v1/environments/api-keys Get api keys None
POST /v1/environments/api-keys/regenerate Regenerate api keys None

Inbound Parse

HTTP Method Endpoint Description Compatability Notes
GET /v1/inbound-parse/mx/status Validate the mx record setup for the inbound parse functionality None

Feeds

HTTP Method Endpoint Description Compatability Notes
POST /v1/feeds Create feed None
GET /v1/feeds Get feeds None
DELETE /v1/feeds/{feedId} Delete feed None

Tenants

HTTP Method Endpoint Description Compatability Notes
GET /v1/tenants Get tenants None
POST /v1/tenants Create tenant None
GET /v1/tenants/{identifier} Get tenant None
PATCH /v1/tenants/{identifier} Update tenant None
DELETE /v1/tenants/{identifier} Delete tenant None

Messages

HTTP Method Endpoint Description Compatability Notes
GET /v1/messages Get messages Full
DELETE /v1/messages/{messageId} Delete message Full
DELETE /v1/messages/transaction/{transactionId} Delete messages by transactionId Full

Organizations

HTTP Method Endpoint Description Compatability Notes
POST /v1/organizations Create an organization None
GET /v1/organizations Fetch all organizations None
PATCH /v1/organizations Rename organization name None
GET /v1/organizations/me Fetch current organization details None
DELETE /v1/organizations/members/{memberId} Remove a member from organization using memberId None
PUT /v1/organizations/members/{memberId}/roles Update a member role to admin None
GET /v1/organizations/members Fetch all members of current organizations None
PUT /v1/organizations/branding Update organization branding details None

Execution Details

HTTP Method Endpoint Description Compatability Notes
GET /v1/execution-details Get execution details Full

Default

HTTP Method Endpoint Description Compatability Notes
GET /v1/blueprints/group-by-category None
GET /v1/blueprints/{templateId} None

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants