Skip to content

Commit

Permalink
Merge pull request #65 from contentstack/feat/DX-1135-fetch-asset-usi…
Browse files Browse the repository at this point in the history
…ng-query

feat: fetch asset by query implementation and test cases
  • Loading branch information
cs-raj authored Aug 23, 2024
2 parents 800de11 + 66e8271 commit 9a1db79
Show file tree
Hide file tree
Showing 5 changed files with 102 additions and 7 deletions.
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
Expand Down
2 changes: 1 addition & 1 deletion contentstack/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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 {
Expand Down Expand Up @@ -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());
}
});
}

}
15 changes: 15 additions & 0 deletions contentstack/src/main/java/com/contentstack/sdk/AssetLibrary.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}


}
9 changes: 3 additions & 6 deletions contentstack/src/main/java/com/contentstack/sdk/SDKUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down

0 comments on commit 9a1db79

Please sign in to comment.