Skip to content

Commit fe1b33a

Browse files
authored
Merge pull request #74 from mayorJAY/feat-new-configurations
Add new configurations and make logging configurable
2 parents d4172c1 + 18bc55b commit fe1b33a

22 files changed

+115
-110
lines changed

src/main/kotlin/Novu.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,19 @@ import co.novu.api.TenantsApi
2020
import co.novu.api.TopicsApi
2121
import co.novu.api.WorkflowsApi
2222
import co.novu.helpers.RetrofitHelper
23+
import okhttp3.logging.HttpLoggingInterceptor
2324

2425
data class NovuConfig(
26+
var apiKey: String = "",
2527
var backendUrl: String = "https://api.novu.co/v1/",
26-
var apiKey: String = ""
28+
var euBackendUrl: String = "https://eu.api.novu.co/v1/",
29+
var enableEuVersion: Boolean = false,
30+
var enableLogging: Boolean = true,
31+
var apiLogLevel: HttpLoggingInterceptor.Level = HttpLoggingInterceptor.Level.BASIC
2732
)
2833

2934
class Novu(
30-
config: NovuConfig
35+
val config: NovuConfig
3136
) {
3237

3338
constructor(apiKey: String) : this(NovuConfig(apiKey = apiKey))

src/main/kotlin/extensions/BlueprintsExtensions.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ private val logger = KotlinLogging.logger {}
1111

1212
suspend fun Novu.getBlueprintsByCategory(): ResponseWrapper<BlueprintsResponse>? {
1313
val response = blueprintsApi.getBlueprintsByCategory()
14-
return response.extractResponse(logger)
14+
return response.extractResponse(logger, config.enableLogging)
1515
}
1616

1717
suspend fun Novu.getBlueprint(templateId: String): Blueprint? {
1818
val response = blueprintsApi.getBlueprint(templateId)
19-
return response.extractResponse(logger)
19+
return response.extractResponse(logger, config.enableLogging)
2020
}

src/main/kotlin/extensions/ChangesExtentions.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,20 @@ private val logger = KotlinLogging.logger {}
1313

1414
suspend fun Novu.changes(page: BigInteger? = null, limit: BigInteger? = null, promoted: String? = null): PaginatedResponseWrapper<ChangesResponse>? {
1515
val response = changesApi.getChanges(page, limit, promoted)
16-
return response.extractResponse(logger)
16+
return response.extractResponse(logger, config.enableLogging)
1717
}
1818

1919
suspend fun Novu.changesCount(): ResponseWrapper<BigInteger>? {
2020
val response = changesApi.getChangesCount()
21-
return response.extractResponse(logger)
21+
return response.extractResponse(logger, config.enableLogging)
2222
}
2323

2424
suspend fun Novu.applyBulkChanges(request: ChangesRequest): ResponseWrapper<List<ChangesResponse>>? {
2525
val response = changesApi.applyBulkChanges(request)
26-
return response.extractResponse(logger)
26+
return response.extractResponse(logger, config.enableLogging)
2727
}
2828

2929
suspend fun Novu.applyChange(changeId: String): ResponseWrapper<List<ChangesResponse>>? {
3030
val response = changesApi.applyChange(changedId = changeId)
31-
return response.extractResponse(logger)
31+
return response.extractResponse(logger, config.enableLogging)
3232
}

src/main/kotlin/extensions/EnvironmentsExtentions.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,35 +14,35 @@ private val logger = KotlinLogging.logger {}
1414

1515
suspend fun Novu.currentEnvironment(): ResponseWrapper<GetEnvironmentResponse>? {
1616
val response = environmentsApi.getCurrentEnvironment()
17-
return response.extractResponse(logger)
17+
return response.extractResponse(logger, config.enableLogging)
1818
}
1919

2020
suspend fun Novu.createEnvironment(request: CreateEnvironmentRequest): ResponseWrapper<GetEnvironmentResponse>? {
2121
val response = environmentsApi.createEnvironment(request)
22-
return response.extractResponse(logger)
22+
return response.extractResponse(logger, config.enableLogging)
2323
}
2424

2525
suspend fun Novu.environments(): ResponseWrapper<List<GetEnvironmentResponse>>? {
2626
val response = environmentsApi.getEnvironments()
27-
return response.extractResponse(logger)
27+
return response.extractResponse(logger, config.enableLogging)
2828
}
2929

3030
suspend fun Novu.updateEnvironment(environmentId: String, request: UpdateEnvironmentRequest): ResponseWrapper<GetEnvironmentResponse>? {
3131
val response = environmentsApi.updateEnvironment(environmentId, request)
32-
return response.extractResponse(logger)
32+
return response.extractResponse(logger, config.enableLogging)
3333
}
3434

3535
suspend fun Novu.apiKeys(): ResponseWrapper<List<ApiKeys>>? {
3636
val response = environmentsApi.getApiKeys()
37-
return response.extractResponse(logger)
37+
return response.extractResponse(logger, config.enableLogging)
3838
}
3939

4040
suspend fun Novu.regenrateApiKey(): ResponseWrapper<List<ApiKeys>>? {
4141
val response = environmentsApi.regenerateApiKey()
42-
return response.extractResponse(logger)
42+
return response.extractResponse(logger, config.enableLogging)
4343
}
4444

4545
suspend fun Novu.updateWidgetSettings(request: Widget): ResponseWrapper<GetEnvironmentResponse>? {
4646
val response = environmentsApi.updateWidgetSettings(request)
47-
return response.extractResponse(logger)
47+
return response.extractResponse(logger, config.enableLogging)
4848
}

src/main/kotlin/extensions/EventsExtensions.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,20 @@ private val logger = KotlinLogging.logger {}
1313

1414
suspend fun Novu.trigger(body: TriggerEventRequest): ResponseWrapper<TriggerResponse>? {
1515
val response = eventsApi.triggerEvent(body)
16-
return response.extractResponse(logger)
16+
return response.extractResponse(logger, config.enableLogging)
1717
}
1818

1919
suspend fun Novu.bulkTrigger(body: BulkTriggerEventRequest): ResponseWrapper<List<TriggerResponse>>? {
2020
val response = eventsApi.bulkTriggerEvent(body)
21-
return response.extractResponse(logger)
21+
return response.extractResponse(logger, config.enableLogging)
2222
}
2323

2424
suspend fun Novu.broadcast(body: BroadcastEventRequest): ResponseWrapper<TriggerResponse>? {
2525
val response = eventsApi.broadcastEvent(body)
26-
return response.extractResponse(logger)
26+
return response.extractResponse(logger, config.enableLogging)
2727
}
2828

2929
suspend fun Novu.cancelTriggerEvent(transactionId: String): ResponseWrapper<Boolean>? {
3030
val response = eventsApi.cancelTriggerEvent(transactionId)
31-
return response.extractResponse(logger)
31+
return response.extractResponse(logger, config.enableLogging)
3232
}

src/main/kotlin/extensions/ExecutionDetailsExtentions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ private val logger = KotlinLogging.logger {}
1010

1111
suspend fun Novu.executionDetails(notificationId: String, subscriberId: String): ResponseWrapper<List<ExecutionDetails>>? {
1212
val response = executionDetailsApi.getExecutionDetails(notificationId, subscriberId)
13-
return response.extractResponse(logger)
13+
return response.extractResponse(logger, config.enableLogging)
1414
}

src/main/kotlin/extensions/FeedsExtentions.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ private val logger = KotlinLogging.logger {}
1111

1212
suspend fun Novu.createFeed(body: CreateByNameRequest): ResponseWrapper<FeedResponse>? {
1313
val response = feedsApi.createFeed(body)
14-
return response.extractResponse(logger)
14+
return response.extractResponse(logger, config.enableLogging)
1515
}
1616

1717
suspend fun Novu.feeds(): ResponseWrapper<List<FeedResponse>>? {
1818
val response = feedsApi.getFeeds()
19-
return response.extractResponse(logger)
19+
return response.extractResponse(logger, config.enableLogging)
2020
}
2121

2222
suspend fun Novu.deleteFeed(feedId: String): ResponseWrapper<FeedResponse>? {
2323
val response = feedsApi.deleteFeed(feedId)
24-
return response.extractResponse(logger)
24+
return response.extractResponse(logger, config.enableLogging)
2525
}

src/main/kotlin/extensions/InboundParseExtentions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ private val logger = KotlinLogging.logger {}
99

1010
suspend fun Novu.validateMxRecordSetupForInboundParse(): ValidateMxRecordSetupForInboundParseResponse? {
1111
val response = inboundParseApi.validateMxRecordSetupForInboundParse()
12-
return response.extractResponse(logger)
12+
return response.extractResponse(logger, config.enableLogging)
1313
}

src/main/kotlin/extensions/IntegrationsExtentions.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,35 +11,35 @@ private val logger = KotlinLogging.logger {}
1111

1212
suspend fun Novu.integrations(): ResponseWrapper<List<IntegrationResponse>>? {
1313
val response = integrationsApi.getIntegrations()
14-
return response.extractResponse(logger)
14+
return response.extractResponse(logger, config.enableLogging)
1515
}
1616

1717
suspend fun Novu.createIntegration(request: IntegrationRequest): ResponseWrapper<IntegrationResponse>? {
1818
val response = integrationsApi.createIntegration(request)
19-
return response.extractResponse(logger)
19+
return response.extractResponse(logger, config.enableLogging)
2020
}
2121

2222
suspend fun Novu.activeIntegrations(): ResponseWrapper<List<IntegrationResponse>>? {
2323
val response = integrationsApi.getActiveIntegrations()
24-
return response.extractResponse(logger)
24+
return response.extractResponse(logger, config.enableLogging)
2525
}
2626

2727
suspend fun Novu.providerWebhook(providerId: String): ResponseWrapper<Boolean>? {
2828
val response = integrationsApi.getProviderWebhook(providerId)
29-
return response.extractResponse(logger)
29+
return response.extractResponse(logger, config.enableLogging)
3030
}
3131

3232
suspend fun Novu.updateIntegration(integrationId: String, request: IntegrationRequest): ResponseWrapper<IntegrationResponse>? {
3333
val response = integrationsApi.updateIntegration(integrationId, request)
34-
return response.extractResponse(logger)
34+
return response.extractResponse(logger, config.enableLogging)
3535
}
3636

3737
suspend fun Novu.deleteIntegration(integrationId: String): ResponseWrapper<List<IntegrationResponse>>? {
3838
val response = integrationsApi.deleteIntegration(integrationId)
39-
return response.extractResponse(logger)
39+
return response.extractResponse(logger, config.enableLogging)
4040
}
4141

4242
suspend fun Novu.setIntegrationAsPrimary(integrationId: String): ResponseWrapper<IntegrationResponse>? {
4343
val response = integrationsApi.setPrimaryIntegration(integrationId)
44-
return response.extractResponse(logger)
44+
return response.extractResponse(logger, config.enableLogging)
4545
}

src/main/kotlin/extensions/LayoutsExtentions.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,30 +16,30 @@ private val logger = KotlinLogging.logger {}
1616

1717
suspend fun Novu.filterLayouts(page: BigInteger, pageSize: BigInteger, orderBy: BigInteger, sortBy: String): PaginatedResponseWrapper<GetLayoutsResponse>? {
1818
val response = layoutsApi.filterLayouts(page, pageSize, sortBy, orderBy)
19-
return response.extractResponse(logger)
19+
return response.extractResponse(logger, config.enableLogging)
2020
}
2121

2222
suspend fun Novu.createLayout(request: CreateLayoutRequest): ResponseWrapper<CreateLayoutResponse>? {
2323
val response = layoutsApi.createLayout(request)
24-
return response.extractResponse(logger)
24+
return response.extractResponse(logger, config.enableLogging)
2525
}
2626

2727
suspend fun Novu.layout(layoutId: String): ResponseWrapper<GetLayoutsResponse>? {
2828
val response = layoutsApi.getLayout(layoutId)
29-
return response.extractResponse(logger)
29+
return response.extractResponse(logger, config.enableLogging)
3030
}
3131

3232
suspend fun Novu.deleteLayout(layoutId: String): DeleteLayoutResponse {
3333
val response = layoutsApi.deleteLayout(layoutId)
34-
return response.extractResponse(logger, DeleteLayoutResponse())
34+
return response.extractResponse(logger, config.enableLogging, DeleteLayoutResponse())
3535
}
3636

3737
suspend fun Novu.updateLayout(layoutId: String, request: CreateLayoutRequest): ResponseWrapper<GetLayoutsResponse>? {
3838
val response = layoutsApi.updateLayout(layoutId, request)
39-
return response.extractResponse(logger)
39+
return response.extractResponse(logger, config.enableLogging)
4040
}
4141

4242
suspend fun Novu.setDefaultLayout(layoutId: String): SetDefaultLayoutResponse {
4343
val response = layoutsApi.setDefaultLayout(layoutId)
44-
return response.extractResponse(logger, SetDefaultLayoutResponse())
44+
return response.extractResponse(logger, config.enableLogging, SetDefaultLayoutResponse())
4545
}

src/main/kotlin/extensions/MessagesExtentions.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ suspend fun Novu.messages(
1919
transactionId: String? = null
2020
): PaginatedResponseWrapper<Message>? {
2121
val response = messagesApi.getMessages(channel, subscriberId, limit, page, transactionId)
22-
return response.extractResponse(logger)
22+
return response.extractResponse(logger, config.enableLogging)
2323
}
2424

2525
suspend fun Novu.deleteMessage(messageId: String): ResponseWrapper<TriggerResponse>? {
2626
val response = messagesApi.deleteMessage(messageId)
27-
return response.extractResponse(logger)
27+
return response.extractResponse(logger, config.enableLogging)
2828
}

src/main/kotlin/extensions/NotificationGroupsExtentions.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,25 @@ private val logger = KotlinLogging.logger {}
1212

1313
suspend fun Novu.getWorkflowGroups(): ResponseWrapper<List<NotificationGroupsResponse>>? {
1414
val response = notificationGroupsApi.getNotificationGroups()
15-
return response.extractResponse(logger)
15+
return response.extractResponse(logger, config.enableLogging)
1616
}
1717

1818
suspend fun Novu.createWorkflowGroup(request: CreateByNameRequest): ResponseWrapper<NotificationGroupsResponse>? {
1919
val response = notificationGroupsApi.createNotificationGroup(request)
20-
return response.extractResponse(logger)
20+
return response.extractResponse(logger, config.enableLogging)
2121
}
2222

2323
suspend fun Novu.getWorkflowGroup(id: String): ResponseWrapper<NotificationGroupsResponse>? {
2424
val response = notificationGroupsApi.getWorkflowGroup(id)
25-
return response.extractResponse(logger)
25+
return response.extractResponse(logger, config.enableLogging)
2626
}
2727

2828
suspend fun Novu.updateWorkflowGroup(id: String, request: CreateByNameRequest): ResponseWrapper<NotificationGroupsResponse>? {
2929
val response = notificationGroupsApi.updateWorkflowGroup(id, request)
30-
return response.extractResponse(logger)
30+
return response.extractResponse(logger, config.enableLogging)
3131
}
3232

3333
suspend fun Novu.deleteWorkflowGroup(id: String): ResponseWrapper<DeleteWorkflowGroupResponse>? {
3434
val response = notificationGroupsApi.deleteWorkflowGroup(id)
35-
return response.extractResponse(logger)
35+
return response.extractResponse(logger, config.enableLogging)
3636
}

src/main/kotlin/extensions/NotificationTemplatesExtentions.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,35 +14,35 @@ private val logger = KotlinLogging.logger {}
1414
@Deprecated("Use getWorkflows(): this will be removed in a future release")
1515
suspend fun Novu.notificationTemplates(page: BigInteger, limit: BigInteger): PaginatedResponseWrapper<NotificationTemplates>? {
1616
val response = notificationTemplatesApi.getNotificationTemplates(page, limit)
17-
return response.extractResponse(logger)
17+
return response.extractResponse(logger, config.enableLogging)
1818
}
1919

2020
@Deprecated("Use createWorkflow(): this will be removed in a future release")
2121
suspend fun Novu.createNotificationTemplates(request: NotificationTemplates): ResponseWrapper<NotificationTemplates>? {
2222
val response = notificationTemplatesApi.createNotificationTemplates(request)
23-
return response.extractResponse(logger)
23+
return response.extractResponse(logger, config.enableLogging)
2424
}
2525

2626
@Deprecated("Use updateWorkflow(): this will be removed in a future release")
2727
suspend fun Novu.updateNotificationTemplates(templateId: String, request: NotificationTemplates): ResponseWrapper<NotificationTemplates>? {
2828
val response = notificationTemplatesApi.updateNotificationTemplates(templateId, request)
29-
return response.extractResponse(logger)
29+
return response.extractResponse(logger, config.enableLogging)
3030
}
3131

3232
@Deprecated("Use deleteWorkflow(): this will be removed in a future release")
3333
suspend fun Novu.deleteNotificationTemplate(templateId: String): ResponseWrapper<Boolean>? {
3434
val response = notificationTemplatesApi.deleteNotificationTemplate(templateId)
35-
return response.extractResponse(logger)
35+
return response.extractResponse(logger, config.enableLogging)
3636
}
3737

3838
@Deprecated("Use getWorkflow(): this will be removed in a future release")
3939
suspend fun Novu.notificationTemplate(templateId: String): ResponseWrapper<NotificationTemplates>? {
4040
val response = notificationTemplatesApi.getNotificationTemplate(templateId)
41-
return response.extractResponse(logger)
41+
return response.extractResponse(logger, config.enableLogging)
4242
}
4343

4444
@Deprecated("Use updateWorkflowStatus(): this will be removed in a future release")
4545
suspend fun Novu.updateNotificationTemplateStatus(templateId: String, request: UpdateNotificationTemplateStatusRequest): ResponseWrapper<NotificationTemplates>? {
4646
val response = notificationTemplatesApi.updateNotificationTemplateStatus(templateId, request)
47-
return response.extractResponse(logger)
47+
return response.extractResponse(logger, config.enableLogging)
4848
}

src/main/kotlin/extensions/NotificationsExtentions.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,20 @@ suspend fun Novu.notifications(notificationRequest: NotificationRequest): Pagina
2121
page = notificationRequest.page,
2222
transactionId = notificationRequest.transactionId
2323
)
24-
return response.extractResponse(logger)
24+
return response.extractResponse(logger, config.enableLogging)
2525
}
2626

2727
suspend fun Novu.notificationsStats(): ResponseWrapper<NotificationStatsResponse>? {
2828
val response = notificationsApi.getNotificationsStats()
29-
return response.extractResponse(logger)
29+
return response.extractResponse(logger, config.enableLogging)
3030
}
3131

3232
suspend fun Novu.notificationGraphStats(): ResponseWrapper<List<NotificationGraphStatsResponse>>? {
3333
val response = notificationsApi.getNotificationGraphStats()
34-
return response.extractResponse(logger)
34+
return response.extractResponse(logger, config.enableLogging)
3535
}
3636

3737
suspend fun Novu.notification(notificationId: String): ResponseWrapper<Notification>? {
3838
val response = notificationsApi.getNotification(notificationId)
39-
return response.extractResponse(logger)
39+
return response.extractResponse(logger, config.enableLogging)
4040
}

0 commit comments

Comments
 (0)