Skip to content

GO SDK for Novu - The open-source notification infrastructure for engineers. ๐Ÿš€

License

Notifications You must be signed in to change notification settings

NonsoAmadi10/go-novu

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

47 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Novu's API v1 Go Library

Novu's API exposes the entire Novu features via a standardized programmatic interface. Please refer to the full documentation to learn more.

Installation & Usage

Install the package to your GoLang project.

go get github.com/novuhq/go-novu

Getting Started

Please follow the installation procedure and then run the following:

package main

import (
	"context"
	"fmt"
	novu "github.com/novuhq/go-novu/lib"
	"log"
)

func main() {
	subscriberID := "<<REPLACE_WITH_YOUR_SUBSCRIBER>"
	apiKey := "<REPLACE_WITH_YOUR_API_KEY>"
	eventId := "<REPLACE_WITH_YOUR_EVENT_ID>"

	ctx := context.Background()
	to := map[string]interface{}{
		"lastName":     "Doe",
		"firstName":    "John",
		"subscriberId": subscriberID,
		"email":        "[email protected]",
	}

	payload := map[string]interface{}{
		"name": "Hello World",
		"organization": map[string]interface{}{
			"logo": "https://happycorp.com/logo.png",
		},
	}

	data := novu.ITriggerPayloadOptions{To: to, Payload: payload}
	novuClient := novu.NewAPIClient(apiKey, &novu.Config{})

	resp, err := novuClient.EventApi.Trigger(ctx, eventId, data)
	if err != nil {
		log.Fatal("novu error", err.Error())
		return
	}

	fmt.Println(resp)

	// get integrations
	integrations, err := novuClient.IntegrationsApi.GetAll(ctx)
	if err != nil {
		log.Fatal("Get all integrations error: ", err.Error())
	}
	fmt.Println(integrations)
}

NOTE Check the cmd directory to see a sample implementation and test files to see sample tests

Documentation for API Endpoints

Class Method HTTP request Description
EventApi Trigger Post /events/trigger Trigger
EventApi TriggerBulk Post /v1/events/trigger/bulk Bulk trigger event
EventApi BroadcastToAll Post /v1/events/trigger/broadcast Broadcast event to all
EventApi CancelTrigger Delete /v1/events/trigger/:transactionId Cancel triggered event
SubscriberApi Get Get /subscribers/:subscriberId Get a subscriber
SubscriberApi Identify Post /subscribers Create a subscriber
SubscriberApi Update Put /subscribers/:subscriberID Update subscriber data
SubscriberApi Delete Delete /subscribers/:subscriberID Removing a subscriber
SubscriberApi Get Get /subscribers/:subscriberId/notifications/feed Get a notification feed for a particular subscriber
SubscriberApi Get Get /subscribers/:subscriberId/notifications/feed Get the unseen notification count for subscribers feed
SubscriberApi Post Post /v1/subscribers/:subscriberId/messages/markAs Mark a subscriber feed message as seen
SubscriberApi Get Get /subscribers/:subscriberId/preferences Get subscriber preferences
SubscriberApi Patch Patch /subscribers/:subscriberId/preferences/:templateId Update subscriber preference
IntegrationsApi Create Post /integrations Create an integration
IntegrationsApi Update Put /integrations/:integrationId Update an integration
IntegrationsApi Delete Delete /integrations/:integrationId Delete an integration
IntegrationsApi Get Get /integrations Get all integrations
IntegrationsApi GetActive Get /integrations/active Get all active integrations

Authorization (api-key)

  • Type: API key
  • API key parameter name: ApiKey
  • Location: HTTP header

Support and Feedback

Be sure to visit the Novu official documentation website for additional information about our API.

If you find a bug, please post the issue on Github.

As always, if you need additional assistance, join our Discord us a note here.

Contributors

Name
Oyewole Samuel
Dima Grossman

About

GO SDK for Novu - The open-source notification infrastructure for engineers. ๐Ÿš€

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.9%
  • Makefile 0.1%