novuhq / novu-dotnet

.NET SDK for Novu - The open-source notification infrastructure for engineers. 🚀
MIT License
26 stars 13 forks source link

Missing methods #72

Open sumitsaurabh927 opened 1 year ago

sumitsaurabh927 commented 1 year ago

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:

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 commented 1 year ago

@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 commented 1 year ago

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 commented 1 year ago

@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 commented 1 year ago

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:

adelinn commented 11 months ago

The SDK isn't up to date with the API specification. I updated the EventTo model here https://github.com/novuhq/novu-dotnet/pull/81

toddb commented 11 months ago

Compatability: Full, Incomplete, None, Upgrade

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