From a4e0f1d790cdaad6fb719911b5f1bd467da123e0 Mon Sep 17 00:00:00 2001 From: Shubham Tiwari Date: Tue, 18 Feb 2025 18:43:38 +0530 Subject: [PATCH 1/6] chore: re-use Twilio rest client for orgs api --- .../com/twilio/base/bearertoken/Creator.java | 50 ---- .../com/twilio/base/bearertoken/Deleter.java | 51 ---- .../com/twilio/base/bearertoken/Fetcher.java | 50 ---- .../com/twilio/base/bearertoken/Page.java | 270 ------------------ .../com/twilio/base/bearertoken/Reader.java | 156 ---------- .../com/twilio/base/bearertoken/Resource.java | 9 - .../twilio/base/bearertoken/ResourceSet.java | 130 --------- .../com/twilio/base/bearertoken/Updater.java | 50 ---- .../orgs/OrgsClientCredentialProvider.java | 66 ++++- .../previewiam/organizations/Account.java | 2 +- .../organizations/AccountFetcher.java | 12 +- .../organizations/AccountReader.java | 36 +-- .../organizations/RoleAssignment.java | 2 +- .../organizations/RoleAssignmentCreator.java | 16 +- .../organizations/RoleAssignmentDeleter.java | 9 +- .../organizations/RoleAssignmentReader.java | 36 +-- .../rest/previewiam/organizations/User.java | 2 +- .../previewiam/organizations/UserCreator.java | 16 +- .../previewiam/organizations/UserDeleter.java | 12 +- .../previewiam/organizations/UserFetcher.java | 12 +- .../previewiam/organizations/UserReader.java | 36 +-- .../previewiam/organizations/UserUpdater.java | 18 +- src/test/java/com/twilio/ClusterTest.java | 211 +++++++------- 23 files changed, 275 insertions(+), 977 deletions(-) delete mode 100644 src/main/java/com/twilio/base/bearertoken/Creator.java delete mode 100644 src/main/java/com/twilio/base/bearertoken/Deleter.java delete mode 100644 src/main/java/com/twilio/base/bearertoken/Fetcher.java delete mode 100644 src/main/java/com/twilio/base/bearertoken/Page.java delete mode 100644 src/main/java/com/twilio/base/bearertoken/Reader.java delete mode 100644 src/main/java/com/twilio/base/bearertoken/Resource.java delete mode 100644 src/main/java/com/twilio/base/bearertoken/ResourceSet.java delete mode 100644 src/main/java/com/twilio/base/bearertoken/Updater.java diff --git a/src/main/java/com/twilio/base/bearertoken/Creator.java b/src/main/java/com/twilio/base/bearertoken/Creator.java deleted file mode 100644 index 8cb676cef6..0000000000 --- a/src/main/java/com/twilio/base/bearertoken/Creator.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.twilio.base.bearertoken; - -import com.twilio.TwilioOrgsTokenAuth; -import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; - -import java.util.concurrent.CompletableFuture; - -/** - * Executor for creation of a resource. - * - * @param type of the resource - */ -public abstract class Creator { - - /** - * Execute an async request using default client. - * - * @return future that resolves to requested object - */ - public CompletableFuture createAsync() { - return createAsync(TwilioOrgsTokenAuth.getRestClient()); - } - - /** - * Execute an async request using specified client. - * - * @param client client used to make request - * @return future that resolves to requested object - */ - public CompletableFuture createAsync(final BearerTokenTwilioRestClient client) { - return CompletableFuture.supplyAsync(() -> create(client), TwilioOrgsTokenAuth.getExecutorService()); - } - - /** - * Execute a request using default client. - * - * @return Requested object - */ - public T create() { - return create(TwilioOrgsTokenAuth.getRestClient()); - } - - /** - * Execute a request using specified client. - * - * @param client client used to make request - * @return Requested object - */ - public abstract T create(final BearerTokenTwilioRestClient client); -} diff --git a/src/main/java/com/twilio/base/bearertoken/Deleter.java b/src/main/java/com/twilio/base/bearertoken/Deleter.java deleted file mode 100644 index 3b49cfd0ba..0000000000 --- a/src/main/java/com/twilio/base/bearertoken/Deleter.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.twilio.base.bearertoken; - -import com.twilio.Twilio; -import com.twilio.TwilioOrgsTokenAuth; -import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; - -import java.util.concurrent.CompletableFuture; - -/** - * Executor for deletes of a resource. - * - * @param type of the resource - */ -public abstract class Deleter { - - /** - * Execute an async request using default client. - * - * @return future that resolves to true if the object was deleted - */ - public CompletableFuture deleteAsync() { - return deleteAsync(TwilioOrgsTokenAuth.getRestClient()); - } - - /** - * Execute an async request using specified client. - * - * @param client client used to make request - * @return future that resolves to true if the object was deleted - */ - public CompletableFuture deleteAsync(final BearerTokenTwilioRestClient client) { - return CompletableFuture.supplyAsync(() -> delete(client), Twilio.getExecutorService()); - } - - /** - * Execute a request using default client. - * - * @return true if the object was deleted - */ - public boolean delete() { - return delete(TwilioOrgsTokenAuth.getRestClient()); - } - - /** - * Execute a request using specified client. - * - * @param client client used to make request - * @return true if the object was deleted - */ - public abstract boolean delete(final BearerTokenTwilioRestClient client); -} diff --git a/src/main/java/com/twilio/base/bearertoken/Fetcher.java b/src/main/java/com/twilio/base/bearertoken/Fetcher.java deleted file mode 100644 index 5654895a3f..0000000000 --- a/src/main/java/com/twilio/base/bearertoken/Fetcher.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.twilio.base.bearertoken; - -import com.twilio.TwilioOrgsTokenAuth; -import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; - -import java.util.concurrent.CompletableFuture; - -/** - * Executor for fetches of a resource. - * - * @param type of the resource - */ -public abstract class Fetcher { - - /** - * Execute an async request using default client. - * - * @return future that resolves to requested object - */ - public CompletableFuture fetchAsync() { - return fetchAsync(TwilioOrgsTokenAuth.getRestClient()); - } - - /** - * Execute an async request using specified client. - * - * @param client client used to make request - * @return future that resolves to requested object - */ - public CompletableFuture fetchAsync(final BearerTokenTwilioRestClient client) { - return CompletableFuture.supplyAsync(() -> fetch(client), TwilioOrgsTokenAuth.getExecutorService()); - } - - /** - * Execute a request using default client. - * - * @return Requested object - */ - public T fetch() { - return fetch(TwilioOrgsTokenAuth.getRestClient()); - } - - /** - * Execute a request using specified client. - * - * @param client client used to make request - * @return Requested object - */ - public abstract T fetch(final BearerTokenTwilioRestClient client); -} diff --git a/src/main/java/com/twilio/base/bearertoken/Page.java b/src/main/java/com/twilio/base/bearertoken/Page.java deleted file mode 100644 index 204c2e98a2..0000000000 --- a/src/main/java/com/twilio/base/bearertoken/Page.java +++ /dev/null @@ -1,270 +0,0 @@ -package com.twilio.base.bearertoken; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.twilio.exception.ApiConnectionException; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -public class Page { - private final List records; - private final String firstPageUrl; - private final String firstPageUri; - private final String nextPageUrl; - private final String nextPageUri; - private final String previousPageUrl; - private final String previousPageUri; - private final String url; - private final String uri; - private final int pageSize; - - private Page(Builder b) { - this.records = b.records; - this.firstPageUri = b.firstPageUri; - this.firstPageUrl = b.firstPageUrl; - this.nextPageUri = b.nextPageUri; - this.nextPageUrl = b.nextPageUrl; - this.previousPageUri = b.previousPageUri; - this.previousPageUrl = b.previousPageUrl; - this.uri = b.uri; - this.url = b.url; - this.pageSize = b.pageSize; - } - - private String urlFromUri(String domain, String uri) { - return "https://" + domain + ".twilio.com" + uri; - } - - public List getRecords() { - return records; - } - - /** - * Generate first page url for a list result. - * - * @param domain domain to use - * @return the first page url - */ - public String getFirstPageUrl(String domain) { - if (firstPageUrl != null) { - return firstPageUrl; - } - - return urlFromUri(domain, firstPageUri); - } - - /** - * Generate next page url for a list result. - * - * @param domain domain to use - * @return the next page url - */ - public String getNextPageUrl(String domain) { - if (nextPageUrl != null) { - return nextPageUrl; - } - - return urlFromUri(domain, nextPageUri); - } - - /** - * Generate previous page url for a list result. - * - * @param domain domain to use - * @return the previous page url - */ - public String getPreviousPageUrl(String domain) { - if (previousPageUrl != null) { - return previousPageUrl; - } - - return urlFromUri(domain, previousPageUri); - } - - public int getPageSize() { - return pageSize; - } - - /** - * Generate page url for a list result. - * - * @param domain domain to use - * @return the page url - */ - public String getUrl(String domain) { - if (url != null) { - return url; - } - - return urlFromUri(domain, uri); - } - - public boolean hasNextPage() { - return (nextPageUri != null && !nextPageUri.isEmpty()) || (nextPageUrl != null && !nextPageUrl.isEmpty()); - } - - /** - * Create a new page of data from a json blob. - * - * @param recordKey key which holds the records - * @param json json blob - * @param recordType resource type - * @param mapper json parser - * @param record class type - * @return a page of records of type T - */ - public static Page fromJson(String recordKey, String json, Class recordType, ObjectMapper mapper) { - try { - List results = new ArrayList<>(); - JsonNode root = mapper.readTree(json); - JsonNode records = root.get(recordKey); - for (final JsonNode record : records) { - results.add(mapper.readValue(record.toString(), recordType)); - } - - JsonNode uriNode = root.get("uri"); - if (uriNode != null) { - return buildPage(root, results); - } else { - return buildNextGenPage(root, results); - } - - } catch (final IOException e) { - throw new ApiConnectionException( - "Unable to deserialize response: " + e.getMessage() + "\nJSON: " + json, e - ); - } - } - - private static Page buildPage(JsonNode root, List results) { - Builder builder = new Builder() - .uri(root.get("uri").asText()); - - JsonNode nextPageNode = root.get("next_page_uri"); - if (nextPageNode != null && !nextPageNode.isNull()) { - builder.nextPageUri(nextPageNode.asText()); - } - - JsonNode previousPageNode = root.get("previous_page_uri"); - if (previousPageNode != null && !previousPageNode.isNull()) { - builder.previousPageUri(previousPageNode.asText()); - } - - JsonNode firstPageNode = root.get("first_page_uri"); - if (firstPageNode != null && !firstPageNode.isNull()) { - builder.firstPageUri(firstPageNode.asText()); - } - - JsonNode pageSizeNode = root.get("page_size"); - if (pageSizeNode != null && !pageSizeNode.isNull()) { - builder.pageSize(pageSizeNode.asInt()); - } else { - builder.pageSize(results.size()); - } - - return builder.records(results).build(); - } - - private static Page buildNextGenPage(JsonNode root, List results) { - JsonNode meta = root.get("meta"); - Builder builder = new Builder<>(); - if(meta != null && meta.get("url") != null) { - - builder = builder.url(meta.get("url").asText()); - - - JsonNode nextPageNode = meta.get("next_page_url"); - if (!nextPageNode.isNull()) { - builder.nextPageUrl(nextPageNode.asText()); - } - - JsonNode previousPageNode = meta.get("previous_page_url"); - if (!previousPageNode.isNull()) { - builder.previousPageUrl(previousPageNode.asText()); - } - - JsonNode firstPageNode = meta.get("first_page_url"); - if (!firstPageNode.isNull()) { - builder.firstPageUrl(firstPageNode.asText()); - } - - JsonNode pageSizeNode = meta.get("page_size"); - if (!pageSizeNode.isNull()) { - builder.pageSize(pageSizeNode.asInt()); - } else { - builder.pageSize(results.size()); - } - } - - return builder.records(results).build(); - } - - private static class Builder { - private List records; - private String firstPageUrl; - private String firstPageUri; - private String nextPageUrl; - private String nextPageUri; - private String previousPageUrl; - private String previousPageUri; - private String uri; - private String url; - private int pageSize; - - public Builder records(List records) { - this.records = records; - return this; - } - - public Builder firstPageUri(String firstPageUri) { - this.firstPageUri = firstPageUri; - return this; - } - - public Builder firstPageUrl(String firstPageUrl) { - this.firstPageUrl = firstPageUrl; - return this; - } - - public Builder nextPageUri(String nextPageUri) { - this.nextPageUri = nextPageUri; - return this; - } - - public Builder nextPageUrl(String nextPageUrl) { - this.nextPageUrl = nextPageUrl; - return this; - } - - public Builder previousPageUri(String previousPageUri) { - this.previousPageUri = previousPageUri; - return this; - } - - public Builder previousPageUrl(String previousPageUrl) { - this.previousPageUrl = previousPageUrl; - return this; - } - - public Builder uri(String uri) { - this.uri = uri; - return this; - } - - public Builder url(String url) { - this.url = url; - return this; - } - - public Builder pageSize(int pageSize) { - this.pageSize = pageSize; - return this; - } - - public Page build() { - return new Page<>(this); - } - } -} diff --git a/src/main/java/com/twilio/base/bearertoken/Reader.java b/src/main/java/com/twilio/base/bearertoken/Reader.java deleted file mode 100644 index 15e221a3f9..0000000000 --- a/src/main/java/com/twilio/base/bearertoken/Reader.java +++ /dev/null @@ -1,156 +0,0 @@ -package com.twilio.base.bearertoken; - -import com.twilio.TwilioOrgsTokenAuth; -import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; - -import java.util.concurrent.CompletableFuture; - -/** - * Executor for listing of a resource. - * - * @param type of the resource - */ -public abstract class Reader { - - private Integer pageSize; - private Long limit; - - /** - * Execute a request using default client. - * - * @return ResourceSet of objects - */ - public ResourceSet read() { - return read(TwilioOrgsTokenAuth.getRestClient()); - } - - /** - * Execute a request using specified client. - * - * @param client client used to make request - * @return ResourceSet of objects - */ - public abstract ResourceSet read(final BearerTokenTwilioRestClient client); - - /** - * Execute an async request using default client. - * - * @return future that resolves to the ResourceSet of objects - */ - public CompletableFuture> readAsync() { - return readAsync(TwilioOrgsTokenAuth.getRestClient()); - } - - /** - * Execute an async request using specified client. - * - * @param client client used to make request - * @return future that resolves to the ResourceSet of objects - */ - public CompletableFuture> readAsync(final BearerTokenTwilioRestClient client) { - return CompletableFuture.supplyAsync(() -> read(client), TwilioOrgsTokenAuth.getExecutorService()); - } - - /** - * Fetch the first page of resources. - * - * @return Page containing the first pageSize of resources - */ - public Page firstPage() { - return firstPage(TwilioOrgsTokenAuth.getRestClient()); - } - - /** - * Fetch the first page of resources using specified client. - * - * @param client client used to fetch - * @return Page containing the first pageSize of resources - */ - public abstract Page firstPage(final BearerTokenTwilioRestClient client); - - /** - * Retrieve the target page of resources. - * - * @param targetUrl API-generated URL for the requested results page - * @return Page containing the target pageSize of resources - */ - public Page getPage(final String targetUrl) { - return getPage(targetUrl, TwilioOrgsTokenAuth.getRestClient()); - } - - /** - * Retrieve the target page of resources. - * - * @param targetUrl API-generated URL for the requested results page - * @param client client used to fetch - * @return Page containing the target pageSize of resources - */ - public abstract Page getPage(final String targetUrl, final BearerTokenTwilioRestClient client); - - /** - * Fetch the following page of resources. - * - * @param page current page of resources - * @return Page containing the next pageSize of resources - */ - public Page nextPage(final Page page) { - return nextPage(page, TwilioOrgsTokenAuth.getRestClient()); - } - - /** - * Fetch the following page of resources using specified client. - * - * @param page current page of resources - * @param client client used to fetch - * @return Page containing the next pageSize of resources - */ - public abstract Page nextPage(final Page page, final BearerTokenTwilioRestClient client); - - /** - * Fetch the prior page of resources. - * - * @param page current page of resources - * @return Page containing the previous pageSize of resources - */ - public Page previousPage(final Page page) { - return previousPage(page, TwilioOrgsTokenAuth.getRestClient()); - } - - /** - * Fetch the prior page of resources using specified client. - * - * @param page current page of resources - * @param client client used to fetch - * @return Page containing the previous pageSize of resources - */ - public abstract Page previousPage(final Page page, final BearerTokenTwilioRestClient client); - - public Integer getPageSize() { - return pageSize; - } - - public Reader pageSize(final int pageSize) { - this.pageSize = pageSize; - return this; - } - - public Long getLimit() { - return limit; - } - - /** - * Sets the max number of records to read. - * - * @param limit max number of records to read - * @return this reader - */ - public Reader limit(final long limit) { - this.limit = limit; - - if (this.pageSize == null) { - this.pageSize = this.limit.intValue(); - } - - return this; - } -} diff --git a/src/main/java/com/twilio/base/bearertoken/Resource.java b/src/main/java/com/twilio/base/bearertoken/Resource.java deleted file mode 100644 index 08dc228556..0000000000 --- a/src/main/java/com/twilio/base/bearertoken/Resource.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.twilio.base.bearertoken; - -import java.io.Serializable; - -public abstract class Resource implements Serializable { - - private static final long serialVersionUID = -5898012691404059591L; - -} diff --git a/src/main/java/com/twilio/base/bearertoken/ResourceSet.java b/src/main/java/com/twilio/base/bearertoken/ResourceSet.java deleted file mode 100644 index 16bc369084..0000000000 --- a/src/main/java/com/twilio/base/bearertoken/ResourceSet.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.twilio.base.bearertoken; - -import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; - -import java.util.Iterator; -import java.util.NoSuchElementException; - -/** - * A collection of resources. - * - * @param type of the resource - */ -public class ResourceSet implements Iterable { - - private final Reader reader; - private final BearerTokenTwilioRestClient client; - - private boolean autoPaging; - private long pages = 1; - private long pageLimit = Long.MAX_VALUE; - private long processed = 0; - private Page page; - private Iterator iterator; - - /** - * Initialize the resource set. - * - * @param reader reader used to fetch next page - * @param client client used to make requests - * @param page page of data - */ - public ResourceSet(final Reader reader, final BearerTokenTwilioRestClient client, final Page page) { - this.reader = reader; - this.client = client; - this.page = page; - this.iterator = page.getRecords().iterator(); - this.autoPaging = true; - - if (reader.getLimit() != null) { - this.pageLimit = (long)(Math.ceil((double)reader.getLimit() / (double)page.getPageSize())); - } - } - - public boolean isAutoPaging() { - return autoPaging; - } - - public ResourceSet setAutoPaging(final boolean autoPaging) { - this.autoPaging = autoPaging; - return this; - } - - public Integer getPageSize() { - return page.getPageSize(); - } - - public ResourceSet setPageSize(final int pageSize) { - reader.pageSize(pageSize); - return this; - } - - public Long getLimit() { - return reader.getLimit(); - } - - public ResourceSet setLimit(final long limit) { - reader.limit(limit); - return this; - } - - public long getPageLimit() { - return pageLimit; - } - - @Override - public Iterator iterator() { - return new ResourceSetIterator<>(this); - } - - private void fetchNextPage() { - if (!page.hasNextPage() || pages >= pageLimit) { - return; - } - - pages++; - page = reader.nextPage(page, client); - iterator = page.getRecords().iterator(); - } - - private class ResourceSetIterator implements Iterator { - private final ResourceSet resourceSet; - - public ResourceSetIterator(final ResourceSet resourceSet) { - this.resourceSet = resourceSet; - } - - @Override - public boolean hasNext() { - if (resourceSet.getLimit() != null && resourceSet.processed >= resourceSet.getLimit()) { - return false; - } - - return resourceSet.iterator.hasNext(); - } - - @Override - public E next() { - if (resourceSet == null || resourceSet.iterator == null) { - throw new NoSuchElementException(); - } - - E element = resourceSet.iterator.next(); - if (resourceSet.isAutoPaging() && !resourceSet.iterator.hasNext()) { - resourceSet.fetchNextPage(); - } - - resourceSet.processed++; - return element; - } - - @Override - public void remove() { - if (resourceSet.iterator != null) { - resourceSet.processed++; - resourceSet.iterator.remove(); - } - } - - } -} diff --git a/src/main/java/com/twilio/base/bearertoken/Updater.java b/src/main/java/com/twilio/base/bearertoken/Updater.java deleted file mode 100644 index 690e3604c5..0000000000 --- a/src/main/java/com/twilio/base/bearertoken/Updater.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.twilio.base.bearertoken; - -import com.twilio.TwilioOrgsTokenAuth; -import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; - -import java.util.concurrent.CompletableFuture; - -/** - * Executor for updates of a resource. - * - * @param type of the resource - */ -public abstract class Updater { - - /** - * Execute an async request using default client. - * - * @return future that resolves to requested object - */ - public CompletableFuture updateAsync() { - return updateAsync(TwilioOrgsTokenAuth.getRestClient()); - } - - /** - * Execute an async request using specified client. - * - * @param client client used to make request - * @return future that resolves to requested object - */ - public CompletableFuture updateAsync(final BearerTokenTwilioRestClient client) { - return CompletableFuture.supplyAsync(() -> update(client), TwilioOrgsTokenAuth.getExecutorService()); - } - - /** - * Execute a request using default client. - * - * @return Requested object - */ - public T update() { - return update(TwilioOrgsTokenAuth.getRestClient()); - } - - /** - * Execute a request using specified client. - * - * @param client client used to make request - * @return Requested object - */ - public abstract T update(final BearerTokenTwilioRestClient client); -} diff --git a/src/main/java/com/twilio/credential/orgs/OrgsClientCredentialProvider.java b/src/main/java/com/twilio/credential/orgs/OrgsClientCredentialProvider.java index 9d5687a64a..b33a3c5619 100644 --- a/src/main/java/com/twilio/credential/orgs/OrgsClientCredentialProvider.java +++ b/src/main/java/com/twilio/credential/orgs/OrgsClientCredentialProvider.java @@ -1,4 +1,68 @@ package com.twilio.credential.orgs; -public class OrgsClientCredentialProvider { + +import com.twilio.annotations.Beta; +import com.twilio.auth_strategy.AuthStrategy; +import com.twilio.auth_strategy.TokenAuthStrategy; +import com.twilio.constant.EnumConstants; +import com.twilio.credential.CredentialProvider; +import com.twilio.exception.AuthenticationException; + +import com.twilio.http.bearertoken.OrgsTokenManager; +import com.twilio.http.bearertoken.TokenManager; + +import java.util.Objects; + +@Beta +public class OrgsClientCredentialProvider extends CredentialProvider { + private String grantType; + private String clientId; + private String clientSecret; + private TokenManager tokenManager; + + public OrgsClientCredentialProvider(String clientId, String clientSecret) { + super(EnumConstants.AuthType.CLIENT_CREDENTIALS); + if (clientId == null || clientSecret == null) { + throw new AuthenticationException("ClientId or ClientSecret can not be null"); + } + this.grantType = "client_credentials"; + this.clientId = clientId; + this.clientSecret = clientSecret; + this.tokenManager = null; + } + + public OrgsClientCredentialProvider(String clientId, String clientSecret, TokenManager tokenManager) { + super(EnumConstants.AuthType.CLIENT_CREDENTIALS); + if (clientId == null || clientSecret == null || tokenManager == null) { + throw new AuthenticationException("ClientId or ClientSecret or TokenManager can not be null"); + } + this.grantType = "client_credentials"; + this.clientId = clientId; + this.clientSecret = clientSecret; + this.tokenManager = tokenManager; + } + + @Override + public AuthStrategy toAuthStrategy() { + if (tokenManager == null) { + tokenManager = new OrgsTokenManager(grantType, clientId, clientSecret); + } + return new TokenAuthStrategy(tokenManager); + } + + @Override + public boolean equals(final Object o) { + if (this == o) { + return true; + } + + if (o == null || getClass() != o.getClass()) { + return false; + } + + OrgsClientCredentialProvider other = (OrgsClientCredentialProvider) o; + return Objects.equals(clientId, other.clientId) && + Objects.equals(clientSecret, other.clientSecret) && + Objects.equals(tokenManager, other.tokenManager); + } } diff --git a/src/main/java/com/twilio/rest/previewiam/organizations/Account.java b/src/main/java/com/twilio/rest/previewiam/organizations/Account.java index 388b31fa34..bffd937287 100644 --- a/src/main/java/com/twilio/rest/previewiam/organizations/Account.java +++ b/src/main/java/com/twilio/rest/previewiam/organizations/Account.java @@ -20,7 +20,7 @@ import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; -import com.twilio.base.bearertoken.Resource; +import com.twilio.base.Resource; import com.twilio.converter.DateConverter; import com.twilio.converter.Promoter; import com.twilio.exception.ApiConnectionException; diff --git a/src/main/java/com/twilio/rest/previewiam/organizations/AccountFetcher.java b/src/main/java/com/twilio/rest/previewiam/organizations/AccountFetcher.java index 57dc7b088e..4b730d2a1b 100644 --- a/src/main/java/com/twilio/rest/previewiam/organizations/AccountFetcher.java +++ b/src/main/java/com/twilio/rest/previewiam/organizations/AccountFetcher.java @@ -14,15 +14,15 @@ package com.twilio.rest.previewiam.organizations; -import com.twilio.base.bearertoken.Fetcher; +import com.twilio.base.Fetcher; import com.twilio.constant.EnumConstants; import com.twilio.exception.ApiConnectionException; import com.twilio.exception.ApiException; import com.twilio.exception.RestException; import com.twilio.http.HttpMethod; import com.twilio.http.Response; -import com.twilio.http.bearertoken.BearerTokenRequest; -import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; +import com.twilio.http.Request; +import com.twilio.http.TwilioRestClient; import com.twilio.rest.Domains; public class AccountFetcher extends Fetcher { @@ -39,7 +39,7 @@ public AccountFetcher( } @Override - public Account fetch(final BearerTokenTwilioRestClient client) { + public Account fetch(final TwilioRestClient client) { String path = "/Organizations/{OrganizationSid}/Accounts/{AccountSid}"; path = @@ -53,7 +53,7 @@ public Account fetch(final BearerTokenTwilioRestClient client) { this.pathAccountSid.toString() ); - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.GET, Domains.PREVIEWIAM.toString(), path @@ -66,7 +66,7 @@ public Account fetch(final BearerTokenTwilioRestClient client) { "Account fetch failed: Unable to connect to server" ); } else if ( - !BearerTokenTwilioRestClient.SUCCESS.test(response.getStatusCode()) + !TwilioRestClient.SUCCESS.test(response.getStatusCode()) ) { RestException restException = RestException.fromJson( response.getStream(), diff --git a/src/main/java/com/twilio/rest/previewiam/organizations/AccountReader.java b/src/main/java/com/twilio/rest/previewiam/organizations/AccountReader.java index 5ad736ac13..05aff75dc5 100644 --- a/src/main/java/com/twilio/rest/previewiam/organizations/AccountReader.java +++ b/src/main/java/com/twilio/rest/previewiam/organizations/AccountReader.java @@ -14,17 +14,17 @@ package com.twilio.rest.previewiam.organizations; -import com.twilio.base.bearertoken.Page; -import com.twilio.base.bearertoken.Reader; -import com.twilio.base.bearertoken.ResourceSet; +import com.twilio.base.Page; +import com.twilio.base.Reader; +import com.twilio.base.ResourceSet; import com.twilio.constant.EnumConstants; import com.twilio.exception.ApiConnectionException; import com.twilio.exception.ApiException; import com.twilio.exception.RestException; import com.twilio.http.HttpMethod; import com.twilio.http.Response; -import com.twilio.http.bearertoken.BearerTokenRequest; -import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; +import com.twilio.http.Request; +import com.twilio.http.TwilioRestClient; import com.twilio.rest.Domains; public class AccountReader extends Reader { @@ -42,11 +42,11 @@ public AccountReader setPageSize(final Integer pageSize) { } @Override - public ResourceSet read(final BearerTokenTwilioRestClient client) { + public ResourceSet read(final TwilioRestClient client) { return new ResourceSet<>(this, client, firstPage(client)); } - public Page firstPage(final BearerTokenTwilioRestClient client) { + public Page firstPage(final TwilioRestClient client) { String path = "/Organizations/{OrganizationSid}/Accounts"; path = path.replace( @@ -54,7 +54,7 @@ public Page firstPage(final BearerTokenTwilioRestClient client) { this.pathOrganizationSid.toString() ); - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.GET, Domains.PREVIEWIAM.toString(), path @@ -66,8 +66,8 @@ public Page firstPage(final BearerTokenTwilioRestClient client) { } private Page pageForRequest( - final BearerTokenTwilioRestClient client, - final BearerTokenRequest request + final TwilioRestClient client, + final Request request ) { Response response = client.request(request); @@ -76,7 +76,7 @@ private Page pageForRequest( "Account read failed: Unable to connect to server" ); } else if ( - !BearerTokenTwilioRestClient.SUCCESS.test(response.getStatusCode()) + !TwilioRestClient.SUCCESS.test(response.getStatusCode()) ) { RestException restException = RestException.fromJson( response.getStream(), @@ -102,9 +102,9 @@ private Page pageForRequest( @Override public Page previousPage( final Page page, - final BearerTokenTwilioRestClient client + final TwilioRestClient client ) { - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.GET, page.getPreviousPageUrl(Domains.PREVIEWIAM.toString()) ); @@ -114,9 +114,9 @@ public Page previousPage( @Override public Page nextPage( final Page page, - final BearerTokenTwilioRestClient client + final TwilioRestClient client ) { - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.GET, page.getNextPageUrl(Domains.PREVIEWIAM.toString()) ); @@ -126,9 +126,9 @@ public Page nextPage( @Override public Page getPage( final String targetUrl, - final BearerTokenTwilioRestClient client + final TwilioRestClient client ) { - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.GET, targetUrl ); @@ -136,7 +136,7 @@ public Page getPage( return pageForRequest(client, request); } - private void addQueryParams(final BearerTokenRequest request) { + private void addQueryParams(final Request request) { if (pageSize != null) { request.addQueryParam("PageSize", pageSize.toString()); } diff --git a/src/main/java/com/twilio/rest/previewiam/organizations/RoleAssignment.java b/src/main/java/com/twilio/rest/previewiam/organizations/RoleAssignment.java index 875068a004..882781fe09 100644 --- a/src/main/java/com/twilio/rest/previewiam/organizations/RoleAssignment.java +++ b/src/main/java/com/twilio/rest/previewiam/organizations/RoleAssignment.java @@ -22,7 +22,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; -import com.twilio.base.bearertoken.Resource; +import com.twilio.base.Resource; import com.twilio.exception.ApiConnectionException; import com.twilio.exception.ApiException; import java.io.IOException; diff --git a/src/main/java/com/twilio/rest/previewiam/organizations/RoleAssignmentCreator.java b/src/main/java/com/twilio/rest/previewiam/organizations/RoleAssignmentCreator.java index e95e19a4b1..711dbb0722 100644 --- a/src/main/java/com/twilio/rest/previewiam/organizations/RoleAssignmentCreator.java +++ b/src/main/java/com/twilio/rest/previewiam/organizations/RoleAssignmentCreator.java @@ -15,15 +15,15 @@ package com.twilio.rest.previewiam.organizations; import com.fasterxml.jackson.databind.ObjectMapper; -import com.twilio.base.bearertoken.Creator; +import com.twilio.base.Creator; import com.twilio.constant.EnumConstants; import com.twilio.exception.ApiConnectionException; import com.twilio.exception.ApiException; import com.twilio.exception.RestException; import com.twilio.http.HttpMethod; import com.twilio.http.Response; -import com.twilio.http.bearertoken.BearerTokenRequest; -import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; +import com.twilio.http.TwilioRestClient; +import com.twilio.http.Request; import com.twilio.rest.Domains; public class RoleAssignmentCreator extends Creator { @@ -49,7 +49,7 @@ public RoleAssignmentCreator setPublicApiCreateRoleAssignmentRequest( } @Override - public RoleAssignment create(final BearerTokenTwilioRestClient client) { + public RoleAssignment create(final TwilioRestClient client) { String path = "/Organizations/{OrganizationSid}/RoleAssignments"; path = @@ -63,7 +63,7 @@ public RoleAssignment create(final BearerTokenTwilioRestClient client) { this.publicApiCreateRoleAssignmentRequest.toString() ); - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.POST, Domains.PREVIEWIAM.toString(), path @@ -76,7 +76,7 @@ public RoleAssignment create(final BearerTokenTwilioRestClient client) { "RoleAssignment creation failed: Unable to connect to server" ); } else if ( - !BearerTokenTwilioRestClient.SUCCESS.test(response.getStatusCode()) + !TwilioRestClient.SUCCESS.test(response.getStatusCode()) ) { RestException restException = RestException.fromJson( response.getStream(), @@ -98,8 +98,8 @@ public RoleAssignment create(final BearerTokenTwilioRestClient client) { } private void addPostParams( - final BearerTokenRequest request, - BearerTokenTwilioRestClient client + final Request request, + TwilioRestClient client ) { ObjectMapper objectMapper = client.getObjectMapper(); if (publicApiCreateRoleAssignmentRequest != null) { diff --git a/src/main/java/com/twilio/rest/previewiam/organizations/RoleAssignmentDeleter.java b/src/main/java/com/twilio/rest/previewiam/organizations/RoleAssignmentDeleter.java index 43cc107708..19163e92f3 100644 --- a/src/main/java/com/twilio/rest/previewiam/organizations/RoleAssignmentDeleter.java +++ b/src/main/java/com/twilio/rest/previewiam/organizations/RoleAssignmentDeleter.java @@ -14,14 +14,15 @@ package com.twilio.rest.previewiam.organizations; -import com.twilio.base.bearertoken.Deleter; +import com.twilio.base.Deleter; import com.twilio.constant.EnumConstants; import com.twilio.exception.ApiConnectionException; import com.twilio.exception.ApiException; import com.twilio.exception.RestException; import com.twilio.http.HttpMethod; import com.twilio.http.Response; -import com.twilio.http.bearertoken.BearerTokenRequest; +import com.twilio.http.TwilioRestClient; +import com.twilio.http.Request; import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; import com.twilio.rest.Domains; @@ -39,7 +40,7 @@ public RoleAssignmentDeleter( } @Override - public boolean delete(final BearerTokenTwilioRestClient client) { + public boolean delete(final TwilioRestClient client) { String path = "/Organizations/{OrganizationSid}/RoleAssignments/{RoleAssignmentSid}"; @@ -54,7 +55,7 @@ public boolean delete(final BearerTokenTwilioRestClient client) { this.pathRoleAssignmentSid.toString() ); - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.DELETE, Domains.PREVIEWIAM.toString(), path diff --git a/src/main/java/com/twilio/rest/previewiam/organizations/RoleAssignmentReader.java b/src/main/java/com/twilio/rest/previewiam/organizations/RoleAssignmentReader.java index 05bb8e8b81..8220cbf15e 100644 --- a/src/main/java/com/twilio/rest/previewiam/organizations/RoleAssignmentReader.java +++ b/src/main/java/com/twilio/rest/previewiam/organizations/RoleAssignmentReader.java @@ -14,17 +14,17 @@ package com.twilio.rest.previewiam.organizations; -import com.twilio.base.bearertoken.Page; -import com.twilio.base.bearertoken.Reader; -import com.twilio.base.bearertoken.ResourceSet; +import com.twilio.base.Page; +import com.twilio.base.Reader; +import com.twilio.base.ResourceSet; import com.twilio.constant.EnumConstants; import com.twilio.exception.ApiConnectionException; import com.twilio.exception.ApiException; import com.twilio.exception.RestException; import com.twilio.http.HttpMethod; import com.twilio.http.Response; -import com.twilio.http.bearertoken.BearerTokenRequest; -import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; +import com.twilio.http.TwilioRestClient; +import com.twilio.http.Request; import com.twilio.rest.Domains; public class RoleAssignmentReader extends Reader { @@ -55,13 +55,13 @@ public RoleAssignmentReader setScope(final String scope) { @Override public ResourceSet read( - final BearerTokenTwilioRestClient client + final TwilioRestClient client ) { return new ResourceSet<>(this, client, firstPage(client)); } public Page firstPage( - final BearerTokenTwilioRestClient client + final TwilioRestClient client ) { String path = "/Organizations/{OrganizationSid}/RoleAssignments"; path = @@ -70,7 +70,7 @@ public Page firstPage( this.pathOrganizationSid.toString() ); - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.GET, Domains.PREVIEWIAM.toString(), path @@ -82,8 +82,8 @@ public Page firstPage( } private Page pageForRequest( - final BearerTokenTwilioRestClient client, - final BearerTokenRequest request + final TwilioRestClient client, + final Request request ) { Response response = client.request(request); @@ -92,7 +92,7 @@ private Page pageForRequest( "RoleAssignment read failed: Unable to connect to server" ); } else if ( - !BearerTokenTwilioRestClient.SUCCESS.test(response.getStatusCode()) + !TwilioRestClient.SUCCESS.test(response.getStatusCode()) ) { RestException restException = RestException.fromJson( response.getStream(), @@ -118,9 +118,9 @@ private Page pageForRequest( @Override public Page previousPage( final Page page, - final BearerTokenTwilioRestClient client + final TwilioRestClient client ) { - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.GET, page.getPreviousPageUrl(Domains.PREVIEWIAM.toString()) ); @@ -130,9 +130,9 @@ public Page previousPage( @Override public Page nextPage( final Page page, - final BearerTokenTwilioRestClient client + final TwilioRestClient client ) { - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.GET, page.getNextPageUrl(Domains.PREVIEWIAM.toString()) ); @@ -142,9 +142,9 @@ public Page nextPage( @Override public Page getPage( final String targetUrl, - final BearerTokenTwilioRestClient client + final TwilioRestClient client ) { - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.GET, targetUrl ); @@ -152,7 +152,7 @@ public Page getPage( return pageForRequest(client, request); } - private void addQueryParams(final BearerTokenRequest request) { + private void addQueryParams(final Request request) { if (pageSize != null) { request.addQueryParam("PageSize", pageSize.toString()); } diff --git a/src/main/java/com/twilio/rest/previewiam/organizations/User.java b/src/main/java/com/twilio/rest/previewiam/organizations/User.java index 2e3a501701..94359dbbbf 100644 --- a/src/main/java/com/twilio/rest/previewiam/organizations/User.java +++ b/src/main/java/com/twilio/rest/previewiam/organizations/User.java @@ -22,7 +22,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; -import com.twilio.base.bearertoken.Resource; +import com.twilio.base.Resource; import com.twilio.exception.ApiConnectionException; import com.twilio.exception.ApiException; import java.io.IOException; diff --git a/src/main/java/com/twilio/rest/previewiam/organizations/UserCreator.java b/src/main/java/com/twilio/rest/previewiam/organizations/UserCreator.java index 92d390ed29..e4fcd0cd3d 100644 --- a/src/main/java/com/twilio/rest/previewiam/organizations/UserCreator.java +++ b/src/main/java/com/twilio/rest/previewiam/organizations/UserCreator.java @@ -15,15 +15,15 @@ package com.twilio.rest.previewiam.organizations; import com.fasterxml.jackson.databind.ObjectMapper; -import com.twilio.base.bearertoken.Creator; +import com.twilio.base.Creator; import com.twilio.constant.EnumConstants; import com.twilio.exception.ApiConnectionException; import com.twilio.exception.ApiException; import com.twilio.exception.RestException; import com.twilio.http.HttpMethod; import com.twilio.http.Response; -import com.twilio.http.bearertoken.BearerTokenRequest; -import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; +import com.twilio.http.Request; +import com.twilio.http.TwilioRestClient; import com.twilio.rest.Domains; public class UserCreator extends Creator { @@ -45,7 +45,7 @@ public UserCreator setScimUser(final User.ScimUser scimUser) { } @Override - public User create(final BearerTokenTwilioRestClient client) { + public User create(final TwilioRestClient client) { String path = "/Organizations/{OrganizationSid}/scim/Users"; path = @@ -55,7 +55,7 @@ public User create(final BearerTokenTwilioRestClient client) { ); path = path.replace("{" + "ScimUser" + "}", this.scimUser.toString()); - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.POST, Domains.PREVIEWIAM.toString(), path @@ -68,7 +68,7 @@ public User create(final BearerTokenTwilioRestClient client) { "User creation failed: Unable to connect to server" ); } else if ( - !BearerTokenTwilioRestClient.SUCCESS.test(response.getStatusCode()) + !TwilioRestClient.SUCCESS.test(response.getStatusCode()) ) { RestException restException = RestException.fromJson( response.getStream(), @@ -87,8 +87,8 @@ public User create(final BearerTokenTwilioRestClient client) { } private void addPostParams( - final BearerTokenRequest request, - BearerTokenTwilioRestClient client + final Request request, + TwilioRestClient client ) { ObjectMapper objectMapper = client.getObjectMapper(); if (scimUser != null) { diff --git a/src/main/java/com/twilio/rest/previewiam/organizations/UserDeleter.java b/src/main/java/com/twilio/rest/previewiam/organizations/UserDeleter.java index 6f44db1c69..dcb8c56787 100644 --- a/src/main/java/com/twilio/rest/previewiam/organizations/UserDeleter.java +++ b/src/main/java/com/twilio/rest/previewiam/organizations/UserDeleter.java @@ -14,15 +14,15 @@ package com.twilio.rest.previewiam.organizations; -import com.twilio.base.bearertoken.Deleter; +import com.twilio.base.Deleter; import com.twilio.constant.EnumConstants; import com.twilio.exception.ApiConnectionException; import com.twilio.exception.ApiException; import com.twilio.exception.RestException; import com.twilio.http.HttpMethod; import com.twilio.http.Response; -import com.twilio.http.bearertoken.BearerTokenRequest; -import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; +import com.twilio.http.Request; +import com.twilio.http.TwilioRestClient; import com.twilio.rest.Domains; public class UserDeleter extends Deleter { @@ -39,7 +39,7 @@ public UserDeleter( } @Override - public boolean delete(final BearerTokenTwilioRestClient client) { + public boolean delete(final TwilioRestClient client) { String path = "/Organizations/{OrganizationSid}/scim/Users/{UserSid}"; path = @@ -49,7 +49,7 @@ public boolean delete(final BearerTokenTwilioRestClient client) { ); path = path.replace("{" + "UserSid" + "}", this.pathUserSid.toString()); - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.DELETE, Domains.PREVIEWIAM.toString(), path @@ -62,7 +62,7 @@ public boolean delete(final BearerTokenTwilioRestClient client) { "User delete failed: Unable to connect to server" ); } else if ( - !BearerTokenTwilioRestClient.SUCCESS.test(response.getStatusCode()) + !TwilioRestClient.SUCCESS.test(response.getStatusCode()) ) { RestException restException = RestException.fromJson( response.getStream(), diff --git a/src/main/java/com/twilio/rest/previewiam/organizations/UserFetcher.java b/src/main/java/com/twilio/rest/previewiam/organizations/UserFetcher.java index 3abc3e86eb..0270ac88dc 100644 --- a/src/main/java/com/twilio/rest/previewiam/organizations/UserFetcher.java +++ b/src/main/java/com/twilio/rest/previewiam/organizations/UserFetcher.java @@ -14,15 +14,15 @@ package com.twilio.rest.previewiam.organizations; -import com.twilio.base.bearertoken.Fetcher; +import com.twilio.base.Fetcher; import com.twilio.constant.EnumConstants; import com.twilio.exception.ApiConnectionException; import com.twilio.exception.ApiException; import com.twilio.exception.RestException; import com.twilio.http.HttpMethod; import com.twilio.http.Response; -import com.twilio.http.bearertoken.BearerTokenRequest; -import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; +import com.twilio.http.Request; +import com.twilio.http.TwilioRestClient; import com.twilio.rest.Domains; public class UserFetcher extends Fetcher { @@ -39,7 +39,7 @@ public UserFetcher( } @Override - public User fetch(final BearerTokenTwilioRestClient client) { + public User fetch(final TwilioRestClient client) { String path = "/Organizations/{OrganizationSid}/scim/Users/{UserSid}"; path = @@ -49,7 +49,7 @@ public User fetch(final BearerTokenTwilioRestClient client) { ); path = path.replace("{" + "UserSid" + "}", this.pathUserSid.toString()); - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.GET, Domains.PREVIEWIAM.toString(), path @@ -62,7 +62,7 @@ public User fetch(final BearerTokenTwilioRestClient client) { "User fetch failed: Unable to connect to server" ); } else if ( - !BearerTokenTwilioRestClient.SUCCESS.test(response.getStatusCode()) + !TwilioRestClient.SUCCESS.test(response.getStatusCode()) ) { RestException restException = RestException.fromJson( response.getStream(), diff --git a/src/main/java/com/twilio/rest/previewiam/organizations/UserReader.java b/src/main/java/com/twilio/rest/previewiam/organizations/UserReader.java index 2ebdb45da6..c6bb6a57eb 100644 --- a/src/main/java/com/twilio/rest/previewiam/organizations/UserReader.java +++ b/src/main/java/com/twilio/rest/previewiam/organizations/UserReader.java @@ -14,17 +14,17 @@ package com.twilio.rest.previewiam.organizations; -import com.twilio.base.bearertoken.Page; -import com.twilio.base.bearertoken.Reader; -import com.twilio.base.bearertoken.ResourceSet; +import com.twilio.base.Page; +import com.twilio.base.Reader; +import com.twilio.base.ResourceSet; import com.twilio.constant.EnumConstants; import com.twilio.exception.ApiConnectionException; import com.twilio.exception.ApiException; import com.twilio.exception.RestException; import com.twilio.http.HttpMethod; import com.twilio.http.Response; -import com.twilio.http.bearertoken.BearerTokenRequest; -import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; +import com.twilio.http.Request; +import com.twilio.http.TwilioRestClient; import com.twilio.rest.Domains; public class UserReader extends Reader { @@ -42,11 +42,11 @@ public UserReader setFilter(final String filter) { } @Override - public ResourceSet read(final BearerTokenTwilioRestClient client) { + public ResourceSet read(final TwilioRestClient client) { return new ResourceSet<>(this, client, firstPage(client)); } - public Page firstPage(final BearerTokenTwilioRestClient client) { + public Page firstPage(final TwilioRestClient client) { String path = "/Organizations/{OrganizationSid}/scim/Users"; path = path.replace( @@ -54,7 +54,7 @@ public Page firstPage(final BearerTokenTwilioRestClient client) { this.pathOrganizationSid.toString() ); - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.GET, Domains.PREVIEWIAM.toString(), path @@ -66,8 +66,8 @@ public Page firstPage(final BearerTokenTwilioRestClient client) { } private Page pageForRequest( - final BearerTokenTwilioRestClient client, - final BearerTokenRequest request + final TwilioRestClient client, + final Request request ) { Response response = client.request(request); @@ -76,7 +76,7 @@ private Page pageForRequest( "User read failed: Unable to connect to server" ); } else if ( - !BearerTokenTwilioRestClient.SUCCESS.test(response.getStatusCode()) + !TwilioRestClient.SUCCESS.test(response.getStatusCode()) ) { RestException restException = RestException.fromJson( response.getStream(), @@ -102,9 +102,9 @@ private Page pageForRequest( @Override public Page previousPage( final Page page, - final BearerTokenTwilioRestClient client + final TwilioRestClient client ) { - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.GET, page.getPreviousPageUrl(Domains.PREVIEWIAM.toString()) ); @@ -114,9 +114,9 @@ public Page previousPage( @Override public Page nextPage( final Page page, - final BearerTokenTwilioRestClient client + final TwilioRestClient client ) { - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.GET, page.getNextPageUrl(Domains.PREVIEWIAM.toString()) ); @@ -126,9 +126,9 @@ public Page nextPage( @Override public Page getPage( final String targetUrl, - final BearerTokenTwilioRestClient client + final TwilioRestClient client ) { - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.GET, targetUrl ); @@ -136,7 +136,7 @@ public Page getPage( return pageForRequest(client, request); } - private void addQueryParams(final BearerTokenRequest request) { + private void addQueryParams(final Request request) { if (filter != null) { request.addQueryParam("filter", filter); } diff --git a/src/main/java/com/twilio/rest/previewiam/organizations/UserUpdater.java b/src/main/java/com/twilio/rest/previewiam/organizations/UserUpdater.java index b68b8557f0..9b3c2a0d4b 100644 --- a/src/main/java/com/twilio/rest/previewiam/organizations/UserUpdater.java +++ b/src/main/java/com/twilio/rest/previewiam/organizations/UserUpdater.java @@ -15,15 +15,15 @@ package com.twilio.rest.previewiam.organizations; import com.fasterxml.jackson.databind.ObjectMapper; -import com.twilio.base.bearertoken.Updater; +import com.twilio.base.Updater; import com.twilio.constant.EnumConstants; import com.twilio.exception.ApiConnectionException; import com.twilio.exception.ApiException; import com.twilio.exception.RestException; import com.twilio.http.HttpMethod; import com.twilio.http.Response; -import com.twilio.http.bearertoken.BearerTokenRequest; -import com.twilio.http.bearertoken.BearerTokenTwilioRestClient; +import com.twilio.http.Request; +import com.twilio.http.TwilioRestClient; import com.twilio.rest.Domains; public class UserUpdater extends Updater { @@ -54,7 +54,7 @@ public UserUpdater setIfMatch(final String ifMatch) { } @Override - public User update(final BearerTokenTwilioRestClient client) { + public User update(final TwilioRestClient client) { String path = "/Organizations/{OrganizationSid}/scim/Users/{UserSid}"; path = @@ -65,7 +65,7 @@ public User update(final BearerTokenTwilioRestClient client) { path = path.replace("{" + "UserSid" + "}", this.pathUserSid.toString()); path = path.replace("{" + "ScimUser" + "}", this.scimUser.toString()); - BearerTokenRequest request = new BearerTokenRequest( + Request request = new Request( HttpMethod.PUT, Domains.PREVIEWIAM.toString(), path @@ -79,7 +79,7 @@ public User update(final BearerTokenTwilioRestClient client) { "User update failed: Unable to connect to server" ); } else if ( - !BearerTokenTwilioRestClient.SUCCESS.test(response.getStatusCode()) + !TwilioRestClient.SUCCESS.test(response.getStatusCode()) ) { RestException restException = RestException.fromJson( response.getStream(), @@ -98,8 +98,8 @@ public User update(final BearerTokenTwilioRestClient client) { } private void addPostParams( - final BearerTokenRequest request, - BearerTokenTwilioRestClient client + final Request request, + TwilioRestClient client ) { ObjectMapper objectMapper = client.getObjectMapper(); if (scimUser != null) { @@ -107,7 +107,7 @@ private void addPostParams( } } - private void addHeaderParams(final BearerTokenRequest request) { + private void addHeaderParams(final Request request) { if (ifMatch != null) { request.addHeaderParam("If-Match", ifMatch); } diff --git a/src/test/java/com/twilio/ClusterTest.java b/src/test/java/com/twilio/ClusterTest.java index 1b40fd0f59..c55dedc73a 100644 --- a/src/test/java/com/twilio/ClusterTest.java +++ b/src/test/java/com/twilio/ClusterTest.java @@ -1,8 +1,9 @@ package com.twilio; import com.twilio.base.Page; -import com.twilio.base.bearertoken.ResourceSet; +import com.twilio.base.ResourceSet; import com.twilio.credential.ClientCredentialProvider; +import com.twilio.credential.orgs.OrgsClientCredentialProvider; import com.twilio.http.CustomHttpClient; import com.twilio.http.TwilioRestClient; import com.twilio.rest.api.v2010.account.IncomingPhoneNumber; @@ -23,9 +24,7 @@ import java.util.List; import java.util.Map; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; public class ClusterTest { String fromNumber; @@ -38,107 +37,107 @@ public class ClusterTest { String clientSecret; String messageSid; TwilioRestClient customRestClient; - + String accountSid; @Before public void setUp() { // only run when ClusterTest property is passed (mvn test -Dtest="ClusterTest"), skip test run on mvn test - Assume.assumeThat(System.getProperty("Test"), CoreMatchers.is("ClusterTest")); +// Assume.assumeThat(System.getProperty("Test"), CoreMatchers.is("ClusterTest")); fromNumber = System.getenv("TWILIO_FROM_NUMBER"); toNumber = System.getenv("TWILIO_TO_NUMBER"); String apiKey = System.getenv("TWILIO_API_KEY"); String secret = System.getenv("TWILIO_API_SECRET"); accountSid = System.getenv("TWILIO_ACCOUNT_SID"); - Twilio.init(apiKey, secret, accountSid); +// Twilio.init(apiKey, secret, accountSid); grantType = "client_credentials"; orgsClientId = System.getenv("TWILIO_ORGS_CLIENT_ID"); orgsClientSecret = System.getenv("TWILIO_ORGS_CLIENT_SECRET"); organisationSid = System.getenv("TWILIO_ORG_SID"); - TwilioOrgsTokenAuth.init(grantType, orgsClientId, orgsClientSecret); - + Twilio.init(new OrgsClientCredentialProvider(orgsClientId, orgsClientSecret)); + clientId = System.getenv("TWILIO_CLIENT_ID"); clientSecret = System.getenv("TWILIO_CLIENT_SECRET"); messageSid = System.getenv("TWILIO_MESSAGE_SID"); - + // CustomHttpClient customRestClient = new TwilioRestClient.Builder(apiKey, secret).accountSid(accountSid).httpClient(new CustomHttpClient()).build(); } - @Test - public void testSendingAText() { - Message message = Message.creator( - new com.twilio.type.PhoneNumber(toNumber), new com.twilio.type.PhoneNumber(fromNumber), - "Where's Wallace?") - .create(); - assertNotNull(message); - assertTrue(message.getBody().contains("Where's Wallace?")); - assertEquals(fromNumber, message.getFrom().toString()); - assertEquals(toNumber, message.getTo().toString()); - } +// @Test +// public void testSendingAText() { +// Message message = Message.creator( +// new com.twilio.type.PhoneNumber(toNumber), new com.twilio.type.PhoneNumber(fromNumber), +// "Where's Wallace?") +// .create(); +// assertNotNull(message); +// assertTrue(message.getBody().contains("Where's Wallace?")); +// assertEquals(fromNumber, message.getFrom().toString()); +// assertEquals(toNumber, message.getTo()); +// } +// +// @Test +// public void testListingNumbers() { +// Page phoneNumbers = IncomingPhoneNumber.reader().firstPage(); +// assertNotNull(phoneNumbers); +// assertFalse(phoneNumbers.getRecords().isEmpty()); +// } +// +// @Test +// public void testListingANumber() { +// IncomingPhoneNumberReader phoneNumberReader = +// IncomingPhoneNumber.reader(); +// phoneNumberReader.setPhoneNumber(fromNumber); +// Page phoneNumbers = phoneNumberReader.firstPage(); +// assertNotNull(phoneNumbers); +// assertEquals(fromNumber, phoneNumbers.getRecords().get(0).getPhoneNumber().toString()); +// } +// +// @Test +// public void testSpecialCharacters() { +// Service service = Service.creator("service|friendly&name").create(); +// assertNotNull(service); +// +// User user = User.creator(service.getSid(), "user|identity&string").create(); +// assertNotNull(user); +// +// boolean isUserDeleted = User.deleter(service.getSid(), user.getSid()).delete(); +// assertTrue(isUserDeleted); +// +// boolean isServiceDeleted = Service.deleter(service.getSid()).delete(); +// assertTrue(isServiceDeleted); +// +// } +// +// @Test +// public void testListParams() { +// Map sinkConfiguration = new HashMap<>(); +// sinkConfiguration.put("destination", "http://example.org/webhook"); +// sinkConfiguration.put("method", "post"); +// sinkConfiguration.put("batch_events",false); +// List> types = new ArrayList<>(); +// Map types1 = new HashMap<>(); +// Map types2 = new HashMap<>(); +// types1.put("type", "com.twilio.messaging.message.delivered"); +// types2.put("type", "com.twilio.messaging.message.sent"); +// types.add(types1); +// types.add(types2); +// +// Sink sink = Sink.creator("test sink java", sinkConfiguration, Sink.SinkType.WEBHOOK).create(); +// assertNotNull(sink); +// +// Subscription subscription = Subscription.creator +// ("test subscription java", sink.getSid(),types).create(); +// assertNotNull(subscription); +// +// // Clean up the resources we've created +// assertTrue(Subscription.deleter(subscription.getSid()).delete()); +// assertTrue(Sink.deleter(sink.getSid()).delete()); +// } @Test - public void testListingNumbers() { - Page phoneNumbers = IncomingPhoneNumber.reader().firstPage(); - assertNotNull(phoneNumbers); - assertTrue(phoneNumbers.getRecords().size() > 0); - } - - @Test - public void testListingANumber() { - IncomingPhoneNumberReader phoneNumberReader = - IncomingPhoneNumber.reader(); - phoneNumberReader.setPhoneNumber(fromNumber); - Page phoneNumbers = phoneNumberReader.firstPage(); - assertNotNull(phoneNumbers); - assertEquals(fromNumber, phoneNumbers.getRecords().get(0).getPhoneNumber().toString()); - } - - @Test - public void testSpecialCharacters() { - Service service = Service.creator("service|friendly&name").create(); - assertNotNull(service); - - User user = User.creator(service.getSid(), "user|identity&string").create(); - assertNotNull(user); - - boolean isUserDeleted = User.deleter(service.getSid(), user.getSid()).delete(); - assertTrue(isUserDeleted); - - boolean isServiceDeleted = Service.deleter(service.getSid()).delete(); - assertTrue(isServiceDeleted); - - } - - @Test - public void testListParams() { - Map sinkConfiguration = new HashMap<>(); - sinkConfiguration.put("destination", "http://example.org/webhook"); - sinkConfiguration.put("method", "post"); - sinkConfiguration.put("batch_events",false); - List> types = new ArrayList<>(); - Map types1 = new HashMap<>(); - Map types2 = new HashMap<>(); - types1.put("type", "com.twilio.messaging.message.delivered"); - types2.put("type", "com.twilio.messaging.message.sent"); - types.add(types1); - types.add(types2); - - Sink sink = Sink.creator("test sink java", sinkConfiguration, Sink.SinkType.WEBHOOK).create(); - assertNotNull(sink); - - Subscription subscription = Subscription.creator - ("test subscription java", sink.getSid(),types).create(); - assertNotNull(subscription); - - // Clean up the resources we've created - assertTrue(Subscription.deleter(subscription.getSid()).delete()); - assertTrue(Sink.deleter(sink.getSid()).delete()); - } - - @Test - public void testOrgsApi(){ + public void testOrgsApi() { //Fetching the account information ResourceSet accountSet = Account.reader(organisationSid).read(); @@ -153,33 +152,33 @@ public void testOrgsApi(){ ResourceSet userSet = com.twilio.rest.previewiam.organizations.User.reader(organisationSid).read(); assertNotNull(userSet); - String userId = userSet.iterator().next().getId().toString(); + String userId = userSet.iterator().next().getId(); assertNotNull(userId); } // Test multipart/form-data - @Test - public void testMultiPartFormData() { - Message message = Message.creator( - new com.twilio.type.PhoneNumber(toNumber), new com.twilio.type.PhoneNumber(fromNumber), - "Where's Wallace?") - .create(customRestClient); - assertNotNull(message); - assertTrue(message.getBody().contains("Where's Wallace?")); - assertEquals(fromNumber, message.getFrom().toString()); - assertEquals(toNumber, message.getTo().toString()); - } - - // Note: This test should be last as we are initialising OAuth App creds. - @Test - public void testPublicOAuthFetchMessage() { - Twilio.init(new ClientCredentialProvider(clientId, clientSecret), accountSid); - // Fetching an existing message; if this test fails, the SID might be deleted, - // in that case, change TWILIO_MESSAGE_SID in twilio-java repo env variables - Message message = Message.fetcher(messageSid).fetch(); - assertNotNull(message); - assertTrue(message.getBody().contains("Where's Wallace?")); - assertEquals(fromNumber, message.getFrom().toString()); - assertEquals(toNumber, message.getTo().toString()); - } +// @Test +// public void testMultiPartFormData() { +// Message message = Message.creator( +// new com.twilio.type.PhoneNumber(toNumber), new com.twilio.type.PhoneNumber(fromNumber), +// "Where's Wallace?") +// .create(customRestClient); +// assertNotNull(message); +// assertTrue(message.getBody().contains("Where's Wallace?")); +// assertEquals(fromNumber, message.getFrom().toString()); +// assertEquals(toNumber, message.getTo()); +// } +// +// // Note: This test should be last as we are initialising OAuth App creds. +// @Test +// public void testPublicOAuthFetchMessage() { +// Twilio.init(new ClientCredentialProvider(clientId, clientSecret), accountSid); +// // Fetching an existing message; if this test fails, the SID might be deleted, +// // in that case, change TWILIO_MESSAGE_SID in twilio-java repo env variables +// Message message = Message.fetcher(messageSid).fetch(); +// assertNotNull(message); +// assertTrue(message.getBody().contains("Where's Wallace?")); +// assertEquals(fromNumber, message.getFrom().toString()); +// assertEquals(toNumber, message.getTo()); +// } } From eb3fa4827520b702d6bc26f750365de4b9a5e632 Mon Sep 17 00:00:00 2001 From: Shubham Tiwari Date: Wed, 19 Feb 2025 17:00:46 +0530 Subject: [PATCH 2/6] chore: fix cluster tests --- src/test/java/com/twilio/ClusterTest.java | 192 +++++++++++----------- 1 file changed, 96 insertions(+), 96 deletions(-) diff --git a/src/test/java/com/twilio/ClusterTest.java b/src/test/java/com/twilio/ClusterTest.java index c55dedc73a..c773acd061 100644 --- a/src/test/java/com/twilio/ClusterTest.java +++ b/src/test/java/com/twilio/ClusterTest.java @@ -49,13 +49,12 @@ public void setUp() { String apiKey = System.getenv("TWILIO_API_KEY"); String secret = System.getenv("TWILIO_API_SECRET"); accountSid = System.getenv("TWILIO_ACCOUNT_SID"); -// Twilio.init(apiKey, secret, accountSid); + Twilio.init(apiKey, secret, accountSid); grantType = "client_credentials"; orgsClientId = System.getenv("TWILIO_ORGS_CLIENT_ID"); orgsClientSecret = System.getenv("TWILIO_ORGS_CLIENT_SECRET"); organisationSid = System.getenv("TWILIO_ORG_SID"); - Twilio.init(new OrgsClientCredentialProvider(orgsClientId, orgsClientSecret)); clientId = System.getenv("TWILIO_CLIENT_ID"); clientSecret = System.getenv("TWILIO_CLIENT_SECRET"); @@ -65,79 +64,80 @@ public void setUp() { customRestClient = new TwilioRestClient.Builder(apiKey, secret).accountSid(accountSid).httpClient(new CustomHttpClient()).build(); } -// @Test -// public void testSendingAText() { -// Message message = Message.creator( -// new com.twilio.type.PhoneNumber(toNumber), new com.twilio.type.PhoneNumber(fromNumber), -// "Where's Wallace?") -// .create(); -// assertNotNull(message); -// assertTrue(message.getBody().contains("Where's Wallace?")); -// assertEquals(fromNumber, message.getFrom().toString()); -// assertEquals(toNumber, message.getTo()); -// } -// -// @Test -// public void testListingNumbers() { -// Page phoneNumbers = IncomingPhoneNumber.reader().firstPage(); -// assertNotNull(phoneNumbers); -// assertFalse(phoneNumbers.getRecords().isEmpty()); -// } -// -// @Test -// public void testListingANumber() { -// IncomingPhoneNumberReader phoneNumberReader = -// IncomingPhoneNumber.reader(); -// phoneNumberReader.setPhoneNumber(fromNumber); -// Page phoneNumbers = phoneNumberReader.firstPage(); -// assertNotNull(phoneNumbers); -// assertEquals(fromNumber, phoneNumbers.getRecords().get(0).getPhoneNumber().toString()); -// } -// -// @Test -// public void testSpecialCharacters() { -// Service service = Service.creator("service|friendly&name").create(); -// assertNotNull(service); -// -// User user = User.creator(service.getSid(), "user|identity&string").create(); -// assertNotNull(user); -// -// boolean isUserDeleted = User.deleter(service.getSid(), user.getSid()).delete(); -// assertTrue(isUserDeleted); -// -// boolean isServiceDeleted = Service.deleter(service.getSid()).delete(); -// assertTrue(isServiceDeleted); -// -// } -// -// @Test -// public void testListParams() { -// Map sinkConfiguration = new HashMap<>(); -// sinkConfiguration.put("destination", "http://example.org/webhook"); -// sinkConfiguration.put("method", "post"); -// sinkConfiguration.put("batch_events",false); -// List> types = new ArrayList<>(); -// Map types1 = new HashMap<>(); -// Map types2 = new HashMap<>(); -// types1.put("type", "com.twilio.messaging.message.delivered"); -// types2.put("type", "com.twilio.messaging.message.sent"); -// types.add(types1); -// types.add(types2); -// -// Sink sink = Sink.creator("test sink java", sinkConfiguration, Sink.SinkType.WEBHOOK).create(); -// assertNotNull(sink); -// -// Subscription subscription = Subscription.creator -// ("test subscription java", sink.getSid(),types).create(); -// assertNotNull(subscription); -// -// // Clean up the resources we've created -// assertTrue(Subscription.deleter(subscription.getSid()).delete()); -// assertTrue(Sink.deleter(sink.getSid()).delete()); -// } + @Test + public void testSendingAText() { + Message message = Message.creator( + new com.twilio.type.PhoneNumber(toNumber), new com.twilio.type.PhoneNumber(fromNumber), + "Where's Wallace?") + .create(); + assertNotNull(message); + assertTrue(message.getBody().contains("Where's Wallace?")); + assertEquals(fromNumber, message.getFrom().toString()); + assertEquals(toNumber, message.getTo()); + } + + @Test + public void testListingNumbers() { + Page phoneNumbers = IncomingPhoneNumber.reader().firstPage(); + assertNotNull(phoneNumbers); + assertFalse(phoneNumbers.getRecords().isEmpty()); + } + + @Test + public void testListingANumber() { + IncomingPhoneNumberReader phoneNumberReader = + IncomingPhoneNumber.reader(); + phoneNumberReader.setPhoneNumber(fromNumber); + Page phoneNumbers = phoneNumberReader.firstPage(); + assertNotNull(phoneNumbers); + assertEquals(fromNumber, phoneNumbers.getRecords().get(0).getPhoneNumber().toString()); + } + + @Test + public void testSpecialCharacters() { + Service service = Service.creator("service|friendly&name").create(); + assertNotNull(service); + + User user = User.creator(service.getSid(), "user|identity&string").create(); + assertNotNull(user); + + boolean isUserDeleted = User.deleter(service.getSid(), user.getSid()).delete(); + assertTrue(isUserDeleted); + + boolean isServiceDeleted = Service.deleter(service.getSid()).delete(); + assertTrue(isServiceDeleted); + + } + + @Test + public void testListParams() { + Map sinkConfiguration = new HashMap<>(); + sinkConfiguration.put("destination", "http://example.org/webhook"); + sinkConfiguration.put("method", "post"); + sinkConfiguration.put("batch_events",false); + List> types = new ArrayList<>(); + Map types1 = new HashMap<>(); + Map types2 = new HashMap<>(); + types1.put("type", "com.twilio.messaging.message.delivered"); + types2.put("type", "com.twilio.messaging.message.sent"); + types.add(types1); + types.add(types2); + + Sink sink = Sink.creator("test sink java", sinkConfiguration, Sink.SinkType.WEBHOOK).create(); + assertNotNull(sink); + + Subscription subscription = Subscription.creator + ("test subscription java", sink.getSid(),types).create(); + assertNotNull(subscription); + + // Clean up the resources we've created + assertTrue(Subscription.deleter(subscription.getSid()).delete()); + assertTrue(Sink.deleter(sink.getSid()).delete()); + } @Test public void testOrgsApi() { + Twilio.init(new OrgsClientCredentialProvider(orgsClientId, orgsClientSecret)); //Fetching the account information ResourceSet accountSet = Account.reader(organisationSid).read(); @@ -157,28 +157,28 @@ public void testOrgsApi() { } // Test multipart/form-data -// @Test -// public void testMultiPartFormData() { -// Message message = Message.creator( -// new com.twilio.type.PhoneNumber(toNumber), new com.twilio.type.PhoneNumber(fromNumber), -// "Where's Wallace?") -// .create(customRestClient); -// assertNotNull(message); -// assertTrue(message.getBody().contains("Where's Wallace?")); -// assertEquals(fromNumber, message.getFrom().toString()); -// assertEquals(toNumber, message.getTo()); -// } -// -// // Note: This test should be last as we are initialising OAuth App creds. -// @Test -// public void testPublicOAuthFetchMessage() { -// Twilio.init(new ClientCredentialProvider(clientId, clientSecret), accountSid); -// // Fetching an existing message; if this test fails, the SID might be deleted, -// // in that case, change TWILIO_MESSAGE_SID in twilio-java repo env variables -// Message message = Message.fetcher(messageSid).fetch(); -// assertNotNull(message); -// assertTrue(message.getBody().contains("Where's Wallace?")); -// assertEquals(fromNumber, message.getFrom().toString()); -// assertEquals(toNumber, message.getTo()); -// } + @Test + public void testMultiPartFormData() { + Message message = Message.creator( + new com.twilio.type.PhoneNumber(toNumber), new com.twilio.type.PhoneNumber(fromNumber), + "Where's Wallace?") + .create(customRestClient); + assertNotNull(message); + assertTrue(message.getBody().contains("Where's Wallace?")); + assertEquals(fromNumber, message.getFrom().toString()); + assertEquals(toNumber, message.getTo()); + } + + // Note: This test should be last as we are initialising OAuth App creds. + @Test + public void testPublicOAuthFetchMessage() { + Twilio.init(new ClientCredentialProvider(clientId, clientSecret), accountSid); + // Fetching an existing message; if this test fails, the SID might be deleted, + // in that case, change TWILIO_MESSAGE_SID in twilio-java repo env variables + Message message = Message.fetcher(messageSid).fetch(); + assertNotNull(message); + assertTrue(message.getBody().contains("Where's Wallace?")); + assertEquals(fromNumber, message.getFrom().toString()); + assertEquals(toNumber, message.getTo()); + } } From c2e667dcf7e706eec04736f6f675460544043843 Mon Sep 17 00:00:00 2001 From: Shubham Tiwari Date: Wed, 19 Feb 2025 18:14:02 +0530 Subject: [PATCH 3/6] chore: accept header changed to */* --- src/main/java/com/twilio/http/NetworkHttpClient.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/twilio/http/NetworkHttpClient.java b/src/main/java/com/twilio/http/NetworkHttpClient.java index 2b557a273b..2ee51586f0 100644 --- a/src/main/java/com/twilio/http/NetworkHttpClient.java +++ b/src/main/java/com/twilio/http/NetworkHttpClient.java @@ -57,7 +57,7 @@ public NetworkHttpClient(final RequestConfig requestConfig) { public NetworkHttpClient(final RequestConfig requestConfig, final SocketConfig socketConfig) { Collection headers = Arrays.asList( new BasicHeader("X-Twilio-Client", "java-" + Twilio.VERSION), - new BasicHeader(HttpHeaders.ACCEPT, "application/json"), + new BasicHeader(HttpHeaders.ACCEPT, "*/*"), new BasicHeader(HttpHeaders.ACCEPT_ENCODING, "utf-8") ); @@ -96,7 +96,7 @@ public NetworkHttpClient(final RequestConfig requestConfig, final SocketConfig s public NetworkHttpClient(HttpClientBuilder clientBuilder) { Collection headers = Arrays.asList( new BasicHeader("X-Twilio-Client", "java-" + Twilio.VERSION), - new BasicHeader(HttpHeaders.ACCEPT, "application/json"), + new BasicHeader(HttpHeaders.ACCEPT, "*/*"), new BasicHeader(HttpHeaders.ACCEPT_ENCODING, "utf-8") ); isCustomClient = true; From fd5021363e5eff8614dd609d2982cc53b70bda88 Mon Sep 17 00:00:00 2001 From: Shubham Tiwari Date: Wed, 19 Feb 2025 18:14:13 +0530 Subject: [PATCH 4/6] chore: check if meta pagination exists --- src/main/java/com/twilio/base/Page.java | 41 ++++++++++++++----------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/twilio/base/Page.java b/src/main/java/com/twilio/base/Page.java index b03440007e..dd227f98fd 100644 --- a/src/main/java/com/twilio/base/Page.java +++ b/src/main/java/com/twilio/base/Page.java @@ -169,28 +169,33 @@ private static Page buildPage(JsonNode root, List results) { private static Page buildNextGenPage(JsonNode root, List results) { JsonNode meta = root.get("meta"); - Builder builder = new Builder().url(meta.get("url").asText()); + Builder builder = new Builder<>(); + if(meta != null && meta.get("url") != null) { - JsonNode nextPageNode = meta.get("next_page_url"); - if (!nextPageNode.isNull()) { - builder.nextPageUrl(nextPageNode.asText()); - } + builder = builder.url(meta.get("url").asText()); - JsonNode previousPageNode = meta.get("previous_page_url"); - if (!previousPageNode.isNull()) { - builder.previousPageUrl(previousPageNode.asText()); - } - JsonNode firstPageNode = meta.get("first_page_url"); - if (!firstPageNode.isNull()) { - builder.firstPageUrl(firstPageNode.asText()); - } + JsonNode nextPageNode = meta.get("next_page_url"); + if (!nextPageNode.isNull()) { + builder.nextPageUrl(nextPageNode.asText()); + } - JsonNode pageSizeNode = meta.get("page_size"); - if (!pageSizeNode.isNull()) { - builder.pageSize(pageSizeNode.asInt()); - } else { - builder.pageSize(results.size()); + JsonNode previousPageNode = meta.get("previous_page_url"); + if (!previousPageNode.isNull()) { + builder.previousPageUrl(previousPageNode.asText()); + } + + JsonNode firstPageNode = meta.get("first_page_url"); + if (!firstPageNode.isNull()) { + builder.firstPageUrl(firstPageNode.asText()); + } + + JsonNode pageSizeNode = meta.get("page_size"); + if (!pageSizeNode.isNull()) { + builder.pageSize(pageSizeNode.asInt()); + } else { + builder.pageSize(results.size()); + } } return builder.records(results).build(); From 13c43aa4d4be67c08a6a4a1479e870092fd8428f Mon Sep 17 00:00:00 2001 From: Shubham Tiwari Date: Wed, 19 Feb 2025 18:14:30 +0530 Subject: [PATCH 5/6] chore: add check if expiresAt doesn't exist --- .../com/twilio/auth_strategy/TokenAuthStrategy.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/twilio/auth_strategy/TokenAuthStrategy.java b/src/main/java/com/twilio/auth_strategy/TokenAuthStrategy.java index d6a9146cdd..4d91b60875 100644 --- a/src/main/java/com/twilio/auth_strategy/TokenAuthStrategy.java +++ b/src/main/java/com/twilio/auth_strategy/TokenAuthStrategy.java @@ -47,7 +47,7 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; TokenAuthStrategy that = (TokenAuthStrategy) o; - return Objects.equals(token, that.token) && + return Objects.equals(token, that.token) && Objects.equals(tokenManager, that.tokenManager); } @Override @@ -58,9 +58,15 @@ public int hashCode() { public boolean isTokenExpired(final String token) { DecodedJWT jwt = JWT.decode(token); Date expiresAt = jwt.getExpiresAt(); + + // If the token does not have an expiration date, consider it expired + if (expiresAt == null) { + return true; + } + // Add a buffer of 30 seconds long bufferMilliseconds = 30 * 1000; Date bufferExpiresAt = new Date(expiresAt.getTime() - bufferMilliseconds); return bufferExpiresAt.before(new Date()); } -} \ No newline at end of file +} From b16cd61ce59bc3a1860f5952450ba0a6e4b3aa13 Mon Sep 17 00:00:00 2001 From: Shubham Date: Wed, 19 Feb 2025 18:21:54 +0530 Subject: [PATCH 6/6] chore: removing local comments --- src/test/java/com/twilio/ClusterTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/twilio/ClusterTest.java b/src/test/java/com/twilio/ClusterTest.java index c773acd061..0633d7dec6 100644 --- a/src/test/java/com/twilio/ClusterTest.java +++ b/src/test/java/com/twilio/ClusterTest.java @@ -43,7 +43,7 @@ public class ClusterTest { @Before public void setUp() { // only run when ClusterTest property is passed (mvn test -Dtest="ClusterTest"), skip test run on mvn test -// Assume.assumeThat(System.getProperty("Test"), CoreMatchers.is("ClusterTest")); + Assume.assumeThat(System.getProperty("Test"), CoreMatchers.is("ClusterTest")); fromNumber = System.getenv("TWILIO_FROM_NUMBER"); toNumber = System.getenv("TWILIO_TO_NUMBER"); String apiKey = System.getenv("TWILIO_API_KEY");