Skip to content

Commit b7ba86d

Browse files
committed
moved scopes to private property
1 parent 27020e7 commit b7ba86d

File tree

2 files changed

+34
-15
lines changed

2 files changed

+34
-15
lines changed

airbyte-oauth/src/main/java/io/airbyte/oauth/flows/SquareOAuthFlow.java

+31-12
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,37 @@
1414
import java.net.URLDecoder;
1515
import java.net.http.HttpClient;
1616
import java.nio.charset.StandardCharsets;
17+
import java.util.Arrays;
18+
import java.util.List;
1719
import java.util.Map;
1820
import java.util.UUID;
1921
import java.util.function.Supplier;
22+
import java.util.stream.Collectors;
2023
import org.apache.http.client.utils.URIBuilder;
2124

2225
public class SquareOAuthFlow extends BaseOAuth2Flow {
2326

24-
private static final String SCOPE_VALUE =
25-
"ITEMS_READ+CUSTOMERS_WRITE+MERCHANT_PROFILE_READ+EMPLOYEES_READ+PAYMENTS_READ+CUSTOMERS_READ+TIMECARDS_READ+ORDERS_READ";
27+
private static final List<String> SCOPES = Arrays.asList(
28+
"CUSTOMERS_READ",
29+
"EMPLOYEES_READ",
30+
"ITEMS_READ",
31+
"MERCHANT_PROFILE_READ",
32+
"ORDERS_READ",
33+
"PAYMENTS_READ",
34+
"TIMECARDS_READ"
35+
// OAuth Permissions:
36+
// https://developer.squareup.com/docs/oauth-api/square-permissions
37+
// https://developer.squareup.com/reference/square/enums/OAuthPermission
38+
// "DISPUTES_READ",
39+
// "GIFTCARDS_READ",
40+
// "INVENTORY_READ",
41+
// "INVOICES_READ",
42+
// "TIMECARDS_SETTINGS_READ",
43+
// "LOYALTY_READ",
44+
// "ONLINE_STORE_SITE_READ",
45+
// "ONLINE_STORE_SNIPPETS_READ",
46+
// "SUBSCRIPTIONS_READ",
47+
);
2648
private static final String AUTHORIZE_URL = "https://connect.squareup.com/oauth2/authorize";
2749
private static final String ACCESS_TOKEN_URL = "https://connect.squareup.com/oauth2/token";
2850

@@ -47,7 +69,7 @@ protected String formatConsentUrl(final UUID definitionId,
4769
// Need to have decoded format, otherwise square fails saying that scope is incorrect
4870
return URLDecoder.decode(new URIBuilder(AUTHORIZE_URL)
4971
.addParameter("client_id", clientId)
50-
.addParameter("scope", SCOPE_VALUE)
72+
.addParameter("scope", String.join("+", SCOPES))
5173
.addParameter("session", "False")
5274
.addParameter("state", getState())
5375
.build().toString(), StandardCharsets.UTF_8);
@@ -66,21 +88,18 @@ protected Map<String, String> getAccessTokenQueryParameters(String clientId,
6688
String clientSecret,
6789
String authCode,
6890
String redirectUrl) {
91+
String scopes = SCOPES.stream()
92+
.map(name -> ('"' + name + '"'))
93+
.collect(Collectors.joining(","));
94+
scopes = '[' + scopes + ']';
95+
6996
return ImmutableMap.<String, String>builder()
7097
// required
7198
.put("client_id", clientId)
7299
.put("client_secret", clientSecret)
73100
.put("code", authCode)
74101
.put("grant_type", "authorization_code")
75-
.put("scopes", "[\n"
76-
+ " \"ITEMS_READ\",\n"
77-
+ " \"MERCHANT_PROFILE_READ\",\n"
78-
+ " \"EMPLOYEES_READ\",\n"
79-
+ " \"PAYMENTS_READ\",\n"
80-
+ " \"CUSTOMERS_READ\",\n"
81-
+ " \"TIMECARDS_READ\",\n"
82-
+ " \"ORDERS_READ\"\n"
83-
+ " ]")
102+
.put("scopes", scopes)
84103
.build();
85104
}
86105

airbyte-oauth/src/test/java/io/airbyte/oauth/flows/SquareOAuthFlowTest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ protected BaseOAuthFlow getOAuthFlow() {
1515

1616
@Override
1717
protected String getExpectedConsentUrl() {
18-
return "https://connect.squareup.com/oauth2/authorize?client_id=test_client_id&scope=ITEMS_READ"
19-
+ "+CUSTOMERS_WRITE+MERCHANT_PROFILE_READ+EMPLOYEES_READ+PAYMENTS_READ+CUSTOMERS_READ"
20-
+ "+TIMECARDS_READ+ORDERS_READ&session=False&state=state";
18+
return "https://connect.squareup.com/oauth2/authorize?client_id=test_client_id" +
19+
"&scope=CUSTOMERS_READ+EMPLOYEES_READ+ITEMS_READ+MERCHANT_PROFILE_READ+ORDERS_READ+PAYMENTS_READ+TIMECARDS_READ" +
20+
"&session=False&state=state";
2121
}
2222

2323
}

0 commit comments

Comments
 (0)