Skip to content

Back Merge DX | 21-08-2024 | Release #69

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 5 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# CHANGELOG

## Version 3.16.1

### Date: 21-August-2024

- Fetch Asset by query

---

## Version 3.16.0

### Date: 31-July-2024
2 changes: 1 addition & 1 deletion contentstack/build.gradle
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@ android.buildFeatures.buildConfig true
mavenPublishing {
publishToMavenCentral(SonatypeHost.DEFAULT)
signAllPublications()
coordinates("com.contentstack.sdk", "android", "3.16.0")
coordinates("com.contentstack.sdk", "android", "3.16.1")

pom {
name = "contentstack-android"
Original file line number Diff line number Diff line change
@@ -9,9 +9,11 @@
import org.junit.runners.MethodSorters;

import java.util.List;
import java.util.concurrent.CountDownLatch;

import static junit.framework.Assert.assertTrue;
import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertNotNull;

import androidx.test.InstrumentationRegistry;
import androidx.test.core.app.ApplicationProvider;
@@ -22,6 +24,8 @@ public class AssetTestCase {
private final String TAG = AssetTestCase.class.getSimpleName();
private static String assetUid = BuildConfig.assetUID;
private static Stack stack;
private static CountDownLatch latch;


@BeforeClass
public static void oneTimeSetUp() throws Exception {
@@ -191,4 +195,75 @@ public void test_GCP_NA() throws Exception {
stack = Contentstack.stack(appContext, DEFAULT_API_KEY, DEFAULT_DELIVERY_TOKEN, DEFAULT_ENV, config);
}

@Test
public void test_I_fetch_asset_by_title() {
final AssetLibrary assetLibrary = stack.assetLibrary().where("title", "iot-icon.png");
assetLibrary.fetchAll(new FetchAssetsCallback() {
@Override
public void onCompletion(ResponseType responseType, List<Asset> assets, Error error) {
if (error == null) {
for (Asset asset : assets) {
Log.d("RESULT:", "resp" + asset.json);
}
}
}
});
}

@Test
public void test_J_fetch_asset_by_tags() {
final AssetLibrary assetLibrary = stack.assetLibrary().where("tags","tag1");
assetLibrary.fetchAll(new FetchAssetsCallback() {
@Override
public void onCompletion(ResponseType responseType, List<Asset> assets, Error error) {
if (error == null) {
for( Asset asset : assets){
Log.d("RESULT:", "resp" + asset.json);
}
assertTrue(assets.size()>0);
}
}
});
}

@Test
public void test_K_fetch_asset_by_description() {
final AssetLibrary assetLibrary= stack.assetLibrary().where("description","Page1");
assetLibrary.fetchAll(new FetchAssetsCallback() {
@Override
public void onCompletion(ResponseType responseType, List<Asset> assets, Error error) {
for(Asset asset : assets){
Log.d("RESULT:", "resp" + asset.toJSON());
}
assertTrue(assets.size()>0);
}
});
}

@Test
public void test_L_fetch_asset_invalid() {
final AssetLibrary assetLibrary = stack.assetLibrary().where("title",null);
assetLibrary.fetchAll(new FetchAssetsCallback() {
@Override
public void onCompletion(ResponseType responseType, List<Asset> assets, Error error) {
Log.e("RESULT:", "ERROR:"+ error.errorMessage);
}
});

}

@Test
public void test_M_fetch_asset_empty_title() {
final AssetLibrary assetLibrary = stack.assetLibrary().where("title","");
assetLibrary.fetchAll(new FetchAssetsCallback() {
@Override
public void onCompletion(ResponseType responseType, List<Asset> assets, Error error) {
for(Asset asset : assets){
Log.d("RESULT:", "resp: " + asset.toJSON());
}
assertEquals(0, assets.size());
}
});
}

}
Original file line number Diff line number Diff line change
@@ -452,5 +452,20 @@ public AssetLibrary includeMetadata() {
}
return this;
}
public AssetLibrary where(String key, String value) {
if (value != null) {
try {
JSONObject queryParams = new JSONObject();
queryParams.put(key, value);
urlQueries.put("query", queryParams);
} catch (JSONException e) {
Log.e(TAG, "JSON error: " + e.getLocalizedMessage());
}
} else {
Log.e(TAG, "Value for key '" + key + "' is null. Skipping addition to query.");
}
return this;
}


}
Original file line number Diff line number Diff line change
@@ -150,12 +150,9 @@ public String getSHAFromString(String value) {
// Create Hex String
// deepcode ignore ApiMigration: <please specify a reason of ignoring this>
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < messageDigest.length; i++) {
String hex = Integer.toHexString(0xFF & messageDigest[i]);
if (hex.length() == 1) {
hexString.append('0');
}
hexString.append(hex);
for (byte b : messageDigest) {
// Format each byte as two-digit hexadecimal
hexString.append(String.format("%02X", b));
}

return hexString.toString();
Loading