Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/novuhq/novu-kotlin
Kotlin SDK for Novu - The open-source notification infrastructure for engineers. 🚀
https://github.com/novuhq/novu-kotlin
gradle hacktoberfest kotlin novu novu-api
Last synced: about 1 month ago
JSON representation
Kotlin SDK for Novu - The open-source notification infrastructure for engineers. 🚀
- Host: GitHub
- URL: https://github.com/novuhq/novu-kotlin
- Owner: novuhq
- License: mit
- Created: 2023-03-03T12:03:32.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-05T22:49:50.000Z (6 months ago)
- Last Synced: 2024-07-06T02:59:54.046Z (6 months ago)
- Topics: gradle, hacktoberfest, kotlin, novu, novu-api
- Language: Kotlin
- Homepage:
- Size: 396 KB
- Stars: 19
- Watchers: 11
- Forks: 8
- Open Issues: 5
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Novu Kotlin SDK
[![License](https://poser.pugx.org/unicodeveloper/novu/license.svg)](LICENSE.md)
[![GitHub release (with filter)](https://img.shields.io/github/v/release/novuhq/novu-kotlin?label=SDK&link=https%3A%2F%2Fgithub.com%2Fnovuhq%2Fnovu-kotlin%2Freleases%2Flatest)](https://github.com/novuhq/novu-kotlin/releases/latest)The [Novu Kotlin](https://novu.co) SDK provides a fluent and expressive interface for interacting with [Novu's API](https://docs.novu.co/api-reference/overview) and managing notifications. Please refer to the full [documentation](https://docs.novu.co/docs/overview/introduction) to learn more.
## Installation
**Maven users:**
```xml
co.novu
novu-kotlin
1.2.0```
**Gradle users:**
```kotlin
//Kotlin
//add dependency
implementation("co.novu:novu-kotlin:1.2.0")
``````groovy
//Groovy
//add dependency
implementation 'co.novu:novu-kotlin:1.2.0'
```Sync your project, and you should have the artifacts downloaded.
## Usage
To use the library, first initialize the client with your API token:
```kotlin
// without changing the backend URL
import co.novu.Novu
import co.novu.extensions.environmentsfun main() {
val novu = Novu(apiKey = "API_KEY")
val environment = novu.environments()
println(environment)
}```
```kotlin
// with config param
import co.novu.Novu
import co.novu.NovuConfig
import co.novu.extensions.environmentsfun main() {
val config = NovuConfig(backendUrl = "URL", apiKey = "API_KEY")
val novu = Novu(config)
val environment = novu.environments()
println(environment)
}
```You can then call methods on the client to interact with the Novu API:
```kotlin
novu.subscribers()
```## List of all methods
The client methods map directly to the Novu API endpoints. Here is a list of all the available methods. Check [the API docs](https://docs.novu.co/api-reference/overview) for list of available `methods`.
### Changes
- `changes(query = {})`
- `countChanges()`
- `applyBulkChanges()`
- `applyChange(changeId)`### Environments
- `currentEnvironment()`
- `createEnvironment(body)`
- `environments()`
- `updateEnvironment(environmentId, body)`
- `apiKeys()`
- `regenerateApiKeys()`
- `updateWidgetSettings(body)`### Events
- `triggerEvent(body)`
- `triggerBulkEvent(body)`
- `broadcastEvent(body)`
- `cancelTriggeredEvent(transactionId)`### Execution Details
- `executionDetails(query = {})`
### Feeds
- `createFeed(body)`
- `feeds()`
- `deleteFeed(feedId)`### Inbound Parse
- `validateMxRecordSetupForInboundParse()`
### Integrations
- `integrations()`
- `createIntegration(body)`
- `activeIntegrations()`
- `webhookProviderStatus(providerId)`
- `updateIntegration(integrationId, body)`
- `deleteIntegration(integrationId)`
- `channelLimit(channelType)`
- `inAppStatus()`### Layouts
- `createLayout(body) `
- `layouts(query = {})`
- `layout(layoutId)`
- `deleteLayout(layoutId)`
- `updateLayout(layoutId, body)`
- `makeDefaultLayout(layoutId)`### Messages
- `messages(query = {})`
- `deleteMessage(messageId)`### Notification Groups
- `createNotificationGroup(body)`
- `notificationGroups()`### Notification Templates
- `notificationTemplates(query = {})`
- `createNotificationTemplate(body)`
- `updateNotificationTemplate(templateId, body)`
- `deleteNotificationTemplate(templateId)`
- `notificationTemplate(templateId)`
- `notificationTemplateBlueprint(templateId)`
- `createNotificationTemplateBlueprint(templateId)`
- `updateNotificationTemplateStatus(templateId, body)`### Notification
- `notifications(query = {})`
- `notificationsStats()`
- `notificationsGraphStats(query = {})`
- `notification(notificationId)`### Subscribers
- `subscribers(query = {}) `
- `createSubscriber(body)`
- `createSubscriberBulk(body)`
- `subscriber(subscriberId)`
- `updateSubscriber(subscriberId, body)`
- `deleteSubscriber(subscriberId)`
- `updateSubscriberCredentials(subscriberId, body)`
- `updateSubscriberOnlineStatus(subscriberId, body)`
- `subscriberPreferences(subscriberId)`
- `updateSubscriberPreference(subscriberId, templateId, body)`
- `subscriberNotificationFeed(subscriberId, query = {})`
- `subscriberUnseenNotificationCount(subscriberId, query = {})`
- `markSubscriberFeedSeen(subscriberId, body)`
- `markMessageActionSeen(subscriberId, messageId, type)`### Topics
- `createTopic(body)`
- `filterTopics(page, pageSize, key)`
- `addSubscribers(topicKey, body)`
- `removeSubscribers(topicKey, body)`
- `checkSubscriber(topicKey, externalSubscriberId)`
- `topic(topicKey)`
- `renameTopic(topicKey, body)`
- `deleteTopic(topicKey)`### Blueprints
- `getBlueprintsByCategory()`
- `getBlueprint(templateId)`### Tenants
- `getTenants(page, limit)`
- `createTenant(body)`
- `getTenant(identifier)`
- `updateTenant(identifier)`
- `deleteTenant(identifier)`### Organizations
- `createOrganization(body)`
- `fetchAllOrganizations()`
- `updateOrganizationName(body)`
- `fetchCurrentOrganization()`
- `removeMemberWithId(identifier)`
- `updateMemberRole(identifier, body)`
- `fetchMembersOfOrganization()`
- `updateOrganizationBrand(body)`### Workflow Override
- `createWorkflowOverride(createWorkflowOverrideRequest)`
- `getWorkflowOverrides(getWorkflowOverrideRequest)`
- `getWorkflowOverride(workflowId, tenantId)`
- `getWorkflowOverrideById(overrideId)`
- `updateWorkflowOverride(workflowId, tenantId)`
- `updateWorkflowOverrideById(overrideId)`
- `deleteWorkflowOverride(overrideId)`### For more information about these methods and their parameters, see the [API documentation](https://docs.novu.co/api-reference/overview).
## Contributing
Feature requests, bug reports and pull requests are welcome. Please create an [issue](https://github.com/novuhq/novu-kotlin/issues).
## Support and Feedback
Be sure to visit the Novu official [documentation website](https://docs.novu.co/docs) for additional information about our API.
If you need additional assistance, join our Discord server [here](https://discord.novu.co).## License
Novu Kotlin SDK is licensed under the MIT License - see the [LICENSE](https://github.com/novuhq/novu-kotlin/blob/main/LICENSE.md) file for details.
## Contributors