Skip to content

Commit 3e97239

Browse files
authored
Update analytics token
1 parent 9c2e22b commit 3e97239

File tree

2 files changed

+35
-18
lines changed

2 files changed

+35
-18
lines changed

cloudinary-core/src/main/java/com/cloudinary/utils/Analytics.java

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,23 @@
88
public class Analytics {
99
private String sdkTokenQueryKey = "_a"; //sdkTokenQueryKey
1010
private String sdkQueryDelimiter = "=";
11-
public String algoVersion = "A";
11+
public String algoVersion = "C";
12+
public String prodcut = "A";
1213
public String SDKCode = ""; // Java = G, Android = F
1314
public String SDKSemver = ""; // Calculate the SDK version .
1415
public String techVersion = ""; // Calculate the Java version.
16+
public String osType;
17+
public String osVersion;
1518

1619
public Analytics() {
17-
this("G", Cloudinary.VERSION,System.getProperty("java.version"));
20+
this("G", Cloudinary.VERSION,System.getProperty("java.version"), "Z", "0.0");
1821
}
19-
public Analytics(String sdkCode, String sdkVersion, String techVersion) {
22+
public Analytics(String sdkCode, String sdkVersion, String techVersion, String osType, String osVersion) {
2023
this.SDKCode = sdkCode;
2124
this.SDKSemver = sdkVersion;
2225
this.techVersion = techVersion;
26+
this.osType = osType;
27+
this.osVersion = osVersion;
2328
}
2429

2530
public Analytics setSDKCode(String SDKCode) {
@@ -43,7 +48,7 @@ public Analytics setTechVersion(String techVersion) {
4348
*/
4449
public String toQueryParam() {
4550
try {
46-
return sdkTokenQueryKey + sdkQueryDelimiter + getAlgorithmVersion() + getSDKType() + getSDKVersion() + getTechVersion() + getSDKFeatureCode();
51+
return sdkTokenQueryKey + sdkQueryDelimiter + getAlgorithmVersion() + prodcut + getSDKType() + getSDKVersion() + getTechVersion() + getOsType() + getOsVersion() + getSDKFeatureCode();
4752
} catch (Exception e) {
4853
return sdkTokenQueryKey + sdkQueryDelimiter + "E";
4954
}
@@ -52,18 +57,30 @@ public String toQueryParam() {
5257
private String getTechVersion() throws Exception {
5358
String[] techVersionString = techVersion.split("_");
5459
String[] versions = techVersionString[0].split("\\.");
60+
return versionArrayToString(versions);
61+
}
62+
63+
private String versionArrayToString(String[] versions) throws Exception {
5564
if (versions.length > 2) {
5665
versions = Arrays.copyOf(versions, versions.length - 1);
5766
}
5867
return getPaddedString(StringUtils.join(versions, "."));
5968
}
6069

70+
private String getOsType() {
71+
return (osType != null) ? osType : "Z"; //System.getProperty("os.name");
72+
}
73+
74+
private String getOsVersion() throws Exception {
75+
return (osVersion != null) ? versionArrayToString(osVersion.split("\\.")) : versionArrayToString(System.getProperty("os.version").split("\\."));
76+
}
77+
6178
private String getSDKType() {
6279
return SDKCode;
6380
}
6481

6582
private String getAlgorithmVersion() {
66-
return "A";
83+
return algoVersion;
6784
}
6885

6986
private String getSDKFeatureCode() {

cloudinary-core/src/test/java/com/cloudinary/analytics/AnalyticsTest.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,19 @@ public void testEncodeVersion() {
2929
analytics.setSDKSemver("1.24.0");
3030
analytics.setTechVersion("12.0.0");
3131
String result = analytics.toQueryParam();
32-
Assert.assertEquals(result, "_a=AGAlhAM0");
32+
Assert.assertEquals(result, "_a=CAGAlhAMZAA0");
3333

3434
analytics.setSDKSemver("12.0");
3535
result = analytics.toQueryParam();
36-
Assert.assertEquals(result, "_a=AGAMAM0");
36+
Assert.assertEquals(result, "_a=CAGAMAMZAA0");
3737

3838
analytics.setSDKSemver("43.21.26");
3939
result = analytics.toQueryParam();
40-
Assert.assertEquals(result, "_a=AG///AM0");
40+
Assert.assertEquals(result, "_a=CAG///AMZAA0");
4141

4242
analytics.setSDKSemver("0.0.0");
4343
result = analytics.toQueryParam();
44-
Assert.assertEquals(result, "_a=AGAAAAM0");
44+
Assert.assertEquals(result, "_a=CAGAAAAMZAA0");
4545

4646
analytics.setSDKSemver("43.21.27");
4747
result = analytics.toQueryParam();
@@ -51,17 +51,17 @@ public void testEncodeVersion() {
5151

5252
@Test
5353
public void testToQueryParam() {
54-
Analytics analytics = new Analytics("F", "2.0.0", "1.8.0");
54+
Analytics analytics = new Analytics("F", "2.0.0", "1.8.0", "Z", "1.34.0");
5555
String result = analytics.toQueryParam();
56-
Assert.assertEquals(result, "_a=AFAACMh0");
56+
Assert.assertEquals(result, "_a=CAFAACMhZ1J0");
5757
}
5858

5959
@Test
6060
public void testUrlWithAnalytics() {
6161
cloudinary.config.analytics = true;
62-
cloudinary.setAnalytics(new Analytics("F", "2.0.0", "1.8.0"));
62+
cloudinary.setAnalytics(new Analytics("F", "2.0.0", "1.8.0", "Z", "1.34.0"));
6363
String url = cloudinary.url().generate("test");
64-
Assert.assertEquals(url, "http://res.cloudinary.com/test123/image/upload/test?_a=AFAACMh0");
64+
Assert.assertEquals(url, "http://res.cloudinary.com/test123/image/upload/test?_a=CAFAACMhZ1J0");
6565
}
6666

6767
@Test
@@ -89,21 +89,21 @@ public void testUrlWithNoAnalyticsNullAndTrue() {
8989
cloudinary.analytics.setSDKSemver("1.30.0");
9090
cloudinary.analytics.setTechVersion("12.0.0");
9191
String url = cloudinary.url().generate("test");
92-
Assert.assertEquals(url, "http://res.cloudinary.com/test123/image/upload/test?_a=AGAu5AM0");
92+
Assert.assertEquals(url, "http://res.cloudinary.com/test123/image/upload/test?_a=CAGAu5AMZAA0");
9393
}
9494

9595
@Test
9696
public void testMiscAnalyticsObject() {
9797
cloudinary.config.analytics = true;
98-
Analytics analytics = new Analytics("Z", "1.24.0", "12.0.0");
98+
Analytics analytics = new Analytics("Z", "1.24.0", "12.0.0", "Z", "1.34.0");
9999
String result = analytics.toQueryParam();
100-
Assert.assertEquals(result, "_a=AZAlhAM0");
100+
Assert.assertEquals(result, "_a=CAZAlhAMZ1J0");
101101
}
102102

103103
@Test
104104
public void testErrorAnalytics() {
105105
cloudinary.config.analytics = true;
106-
Analytics analytics = new Analytics("Z", "1.24.0", "0");
106+
Analytics analytics = new Analytics("Z", "1.24.0", "0", "Z", "1.34.0");
107107
String result = analytics.toQueryParam();
108108
Assert.assertEquals(result, "_a=E");
109109
}
@@ -116,7 +116,7 @@ public void testUrlNoAnalyticsWithQueryParams() {
116116
cloudinary.config.cloudName = "test123";
117117

118118
cloudinary.config.analytics = true;
119-
cloudinary.setAnalytics(new Analytics("F", "2.0.0", System.getProperty("java.version")));
119+
cloudinary.setAnalytics(new Analytics("F", "2.0.0", System.getProperty("java.version"), "Z", System.getProperty("os.version")));
120120
cloudinary.config.privateCdn = true;
121121
String url = cloudinary.url().signed(true).type("authenticated").generate("test");
122122
assertEquals(url,"http://test123-res.cloudinary.com/image/authenticated/test?__cld_token__=st=11111111~exp=11111411~hmac=735a49389a72ac0b90d1a84ac5d43facd1a9047f153b39e914747ef6ed195e53");

0 commit comments

Comments
 (0)