Skip to content

Commit

Permalink
addressed review comments
Browse files Browse the repository at this point in the history
  • Loading branch information
arvindkrishnakumar-okta committed Jun 16, 2020
1 parent 6d8456f commit 7a8bb6f
Show file tree
Hide file tree
Showing 2 changed files with 155 additions and 101 deletions.
105 changes: 105 additions & 0 deletions impl/src/main/java/com/okta/sdk/impl/resource/EventHookBuilder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
/*
* Copyright 2020-Present Okta, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.okta.sdk.impl.resource;

import com.google.common.net.HttpHeaders;
import com.okta.commons.lang.Classes;
import com.okta.sdk.client.Client;
import com.okta.sdk.resource.event.hook.EventHook;
import com.okta.sdk.resource.event.hook.EventHookChannel;
import com.okta.sdk.resource.event.hook.EventHookChannelConfig;
import com.okta.sdk.resource.event.hook.EventHookChannelConfigHeader;
import com.okta.sdk.resource.event.hook.EventHookChannelConfigAuthScheme;
import com.okta.sdk.resource.event.hook.EventHookChannelConfigAuthSchemeType;
import com.okta.sdk.resource.event.hook.EventSubscriptions;

import java.util.Arrays;
import java.util.List;

/**
* Builder for {@link EventHook}.
* @since 2.0.0
*/
public class EventHookBuilder {

private static final String LIFECYCLE_EVENT_CREATE = "user.lifecycle.create";
private static final String LIFECYCLE_EVENT_ACTIVATE = "user.lifecycle.activate";

private String name;
private String url;
private String authorizationHeaderValue;
private List<EventHookChannelConfigHeader> headers;
private String version;

public EventHookBuilder setName(String name) {
this.name = name;
return this;
}

public EventHookBuilder setUrl(String url) {
this.url = url;
return this;
}

public EventHookBuilder setAuthorizationHeaderValue(String authorizationHeaderValue) {
this.authorizationHeaderValue = authorizationHeaderValue;
return this;
}

private EventHookBuilder setHeaders(List<EventHookChannelConfigHeader> headers) {
this.headers = headers;
return this;
}

public EventHookBuilder setVersion(String version) {
this.version = version;
return this;
}

public EventHook buildAndCreate(Client client) {

EventSubscriptions eventSubscriptions = client.instantiate(EventSubscriptions.class)
.setType(EventSubscriptions.TypeEnum.EVENT_TYPE)
.setItems(Arrays.asList(LIFECYCLE_EVENT_CREATE, LIFECYCLE_EVENT_ACTIVATE));

EventHookChannelConfigAuthScheme eventHookChannelConfigAuthScheme =
client.instantiate(EventHookChannelConfigAuthScheme.class)
.setType(EventHookChannelConfigAuthSchemeType.HEADER)
.setKey(HttpHeaders.AUTHORIZATION)
.setValue(authorizationHeaderValue);

EventHookChannelConfig eventHookChannelConfig = client.instantiate(EventHookChannelConfig.class)
.setUri(url)
.setHeaders(headers)
.setAuthScheme(eventHookChannelConfigAuthScheme);

EventHookChannel eventHookChannel = client.instantiate(EventHookChannel.class)
.setType(EventHookChannel.TypeEnum.HTTP)
.setVersion(version)
.setConfig(eventHookChannelConfig);

EventHook createdEventHook = client.createEventHook(client.instantiate(EventHook.class)
.setName(name)
.setEvents(eventSubscriptions)
.setChannel(eventHookChannel));

return createdEventHook;
}

static EventHookBuilder instance() {
return Classes.newInstance("com.okta.sdk.impl.resource.EventHookBuilder");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,14 @@
*/
package com.okta.sdk.tests.it

import com.okta.sdk.impl.resource.EventHookBuilder
import com.okta.sdk.resource.ResourceException
import com.okta.sdk.resource.event.hook.EventHookChannel
import com.okta.sdk.resource.event.hook.EventHookChannelConfig
import com.okta.sdk.resource.event.hook.EventHookChannelConfigAuthScheme
import com.okta.sdk.resource.event.hook.EventHookChannelConfigHeader
import com.okta.sdk.resource.event.hook.EventSubscriptions
import com.okta.sdk.resource.event.hook.EventHook
import com.okta.sdk.resource.event.hook.EventHookChannelConfigAuthSchemeType
import com.okta.sdk.resource.event.hook.EventHookList

import com.okta.sdk.tests.it.util.ITSupport

import org.testng.annotations.Test
Expand All @@ -45,23 +44,15 @@ class EventHooksIT extends ITSupport {
void createEventHookTest() {
String name = "event-hook-java-sdk-${UUID.randomUUID().toString()}"

EventHook createdEventHook = client.createEventHook(client.instantiate(EventHook)
EventHook createdEventHook = EventHookBuilder.instance()
.setName(name)
.setEvents(client.instantiate(EventSubscriptions)
.setType(EventSubscriptions.TypeEnum.EVENT_TYPE)
.setItems(["user.lifecycle.create", "user.lifecycle.activate"]))
.setChannel(client.instantiate(EventHookChannel)
.setType(EventHookChannel.TypeEnum.HTTP)
.setVersion("1.0.0")
.setConfig(client.instantiate(EventHookChannelConfig)
.setUri("https://www.example.com/eventHooks")
.setHeaders([ client.instantiate(EventHookChannelConfigHeader)
.setKey("X-Test-Header")
.setValue("Test header value")])
.setAuthScheme(client.instantiate(EventHookChannelConfigAuthScheme)
.setType(EventHookChannelConfigAuthSchemeType.HEADER)
.setKey("Authorization")
.setValue("Test-Api-Key")))))
.setUrl("https://www.example.com/eventHooks")
.setVersion("1.0.0")
.setAuthorizationHeaderValue("Test-Api-Key")
.setHeaders(Arrays.asList(client.instantiate(EventHookChannelConfigHeader)
.setKey("X-Test-Header")
.setValue("Test header value")))
.buildAndCreate(client);
registerForCleanup(createdEventHook)

assertThat(createdEventHook.getId(), notNullValue())
Expand All @@ -77,23 +68,15 @@ class EventHooksIT extends ITSupport {
void getEventHookTest() {
String name = "event-hook-java-sdk-${UUID.randomUUID().toString()}"

EventHook createdEventHook = client.createEventHook(client.instantiate(EventHook)
EventHook createdEventHook = EventHookBuilder.instance()
.setName(name)
.setEvents(client.instantiate(EventSubscriptions)
.setType(EventSubscriptions.TypeEnum.EVENT_TYPE)
.setItems(["user.lifecycle.create", "user.lifecycle.activate"]))
.setChannel(client.instantiate(EventHookChannel)
.setType(EventHookChannel.TypeEnum.HTTP)
.setVersion("1.0.0")
.setConfig(client.instantiate(EventHookChannelConfig)
.setUri("https://www.example.com/eventHooks")
.setHeaders([ client.instantiate(EventHookChannelConfigHeader)
.setKey("X-Test-Header")
.setValue("Test header value")])
.setAuthScheme(client.instantiate(EventHookChannelConfigAuthScheme)
.setType(EventHookChannelConfigAuthSchemeType.HEADER)
.setKey("Authorization")
.setValue("Test-Api-Key")))))
.setUrl("https://www.example.com/eventHooks")
.setVersion("1.0.0")
.setAuthorizationHeaderValue("Test-Api-Key")
.setHeaders(Arrays.asList(client.instantiate(EventHookChannelConfigHeader)
.setKey("X-Test-Header")
.setValue("Test header value")))
.buildAndCreate(client);
registerForCleanup(createdEventHook)

assertThat(createdEventHook.getId(), notNullValue())
Expand All @@ -113,23 +96,15 @@ class EventHooksIT extends ITSupport {
void updateEventHookTest() {
String name = "event-hook-java-sdk-${UUID.randomUUID().toString()}"

EventHook createdEventHook = client.createEventHook(client.instantiate(EventHook)
EventHook createdEventHook = EventHookBuilder.instance()
.setName(name)
.setEvents(client.instantiate(EventSubscriptions)
.setType(EventSubscriptions.TypeEnum.EVENT_TYPE)
.setItems(["user.lifecycle.create", "user.lifecycle.activate"]))
.setChannel(client.instantiate(EventHookChannel)
.setType(EventHookChannel.TypeEnum.HTTP)
.setVersion("1.0.0")
.setConfig(client.instantiate(EventHookChannelConfig)
.setUri("https://www.example.com/eventHooks")
.setHeaders([ client.instantiate(EventHookChannelConfigHeader)
.setKey("X-Test-Header")
.setValue("Test header value")])
.setAuthScheme(client.instantiate(EventHookChannelConfigAuthScheme)
.setType(EventHookChannelConfigAuthSchemeType.HEADER)
.setKey("Authorization")
.setValue("Test-Api-Key")))))
.setUrl("https://www.example.com/eventHooks")
.setVersion("1.0.0")
.setAuthorizationHeaderValue("Test-Api-Key")
.setHeaders(Arrays.asList(client.instantiate(EventHookChannelConfigHeader)
.setKey("X-Test-Header")
.setValue("Test header value")))
.buildAndCreate(client);
registerForCleanup(createdEventHook)

assertThat(createdEventHook.getId(), notNullValue())
Expand Down Expand Up @@ -158,23 +133,15 @@ class EventHooksIT extends ITSupport {
void deleteEventHookTest() {
String name = "event-hook-java-sdk-${UUID.randomUUID().toString()}"

EventHook createdEventHook = client.createEventHook(client.instantiate(EventHook)
EventHook createdEventHook = EventHookBuilder.instance()
.setName(name)
.setEvents(client.instantiate(EventSubscriptions)
.setType(EventSubscriptions.TypeEnum.EVENT_TYPE)
.setItems(["user.lifecycle.create", "user.lifecycle.activate"]))
.setChannel(client.instantiate(EventHookChannel)
.setType(EventHookChannel.TypeEnum.HTTP)
.setVersion("1.0.0")
.setConfig(client.instantiate(EventHookChannelConfig)
.setUri("https://www.example.com/eventHooks")
.setHeaders([ client.instantiate(EventHookChannelConfigHeader)
.setKey("X-Test-Header")
.setValue("Test header value")])
.setAuthScheme(client.instantiate(EventHookChannelConfigAuthScheme)
.setType(EventHookChannelConfigAuthSchemeType.HEADER)
.setKey("Authorization")
.setValue("Test-Api-Key")))))
.setUrl("https://www.example.com/eventHooks")
.setVersion("1.0.0")
.setAuthorizationHeaderValue("Test-Api-Key")
.setHeaders(Arrays.asList(client.instantiate(EventHookChannelConfigHeader)
.setKey("X-Test-Header")
.setValue("Test header value")))
.buildAndCreate(client);
registerForCleanup(createdEventHook)

assertThat(createdEventHook.getId(), notNullValue())
Expand Down Expand Up @@ -202,25 +169,15 @@ class EventHooksIT extends ITSupport {

EventHookList eventHookList = client.listEventHooks()

int listSize = eventHookList.size()

EventHook createdEventHook = client.createEventHook(client.instantiate(EventHook)
EventHook createdEventHook = EventHookBuilder.instance()
.setName(name)
.setEvents(client.instantiate(EventSubscriptions)
.setType(EventSubscriptions.TypeEnum.EVENT_TYPE)
.setItems(["user.lifecycle.create", "user.lifecycle.activate"]))
.setChannel(client.instantiate(EventHookChannel)
.setType(EventHookChannel.TypeEnum.HTTP)
.setVersion("1.0.0")
.setConfig(client.instantiate(EventHookChannelConfig)
.setUri("https://www.example.com/eventHooks")
.setHeaders([ client.instantiate(EventHookChannelConfigHeader)
.setKey("X-Test-Header")
.setValue("Test header value")])
.setAuthScheme(client.instantiate(EventHookChannelConfigAuthScheme)
.setType(EventHookChannelConfigAuthSchemeType.HEADER)
.setKey("Authorization")
.setValue("Test-Api-Key")))))
.setUrl("https://www.example.com/eventHooks")
.setVersion("1.0.0")
.setAuthorizationHeaderValue("Test-Api-Key")
.setHeaders(Arrays.asList(client.instantiate(EventHookChannelConfigHeader)
.setKey("X-Test-Header")
.setValue("Test header value")))
.buildAndCreate(client);
registerForCleanup(createdEventHook)

assertThat(createdEventHook.getId(), notNullValue())
Expand All @@ -236,23 +193,15 @@ class EventHooksIT extends ITSupport {
void activateDeactivateEventHookTest() {
String name = "event-hook-java-sdk-${UUID.randomUUID().toString()}"

EventHook createdEventHook = client.createEventHook(client.instantiate(EventHook)
EventHook createdEventHook = EventHookBuilder.instance()
.setName(name)
.setEvents(client.instantiate(EventSubscriptions)
.setType(EventSubscriptions.TypeEnum.EVENT_TYPE)
.setItems(["user.lifecycle.create", "user.lifecycle.activate"]))
.setChannel(client.instantiate(EventHookChannel)
.setType(EventHookChannel.TypeEnum.HTTP)
.setVersion("1.0.0")
.setConfig(client.instantiate(EventHookChannelConfig)
.setUri("https://www.example.com/eventHooks")
.setHeaders([ client.instantiate(EventHookChannelConfigHeader)
.setKey("X-Test-Header")
.setValue("Test header value")])
.setAuthScheme(client.instantiate(EventHookChannelConfigAuthScheme)
.setType(EventHookChannelConfigAuthSchemeType.HEADER)
.setKey("Authorization")
.setValue("Test-Api-Key")))))
.setUrl("https://www.example.com/eventHooks")
.setVersion("1.0.0")
.setAuthorizationHeaderValue("Test-Api-Key")
.setHeaders(Arrays.asList(client.instantiate(EventHookChannelConfigHeader)
.setKey("X-Test-Header")
.setValue("Test header value")))
.buildAndCreate(client);
registerForCleanup(createdEventHook)

assertThat(createdEventHook.getId(), notNullValue())
Expand Down

0 comments on commit 7a8bb6f

Please sign in to comment.