Skip to content

Commit ac2a06d

Browse files
committed
feat: add AssetFields() valid parameters
Parameters are: 1. user_defined_fields 2. embedded_metadata 3. ai_generated_metadata 4. visual_markups
1 parent 84977ab commit ac2a06d

12 files changed

Lines changed: 136 additions & 22 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
- CDA / DAM 2.0 – AssetFields support
66
- Added `AssetFields(params string[] fields)` to request specific asset-related metadata via the CDA `asset_fields[]` query parameter
77
- Implemented on: Entry (single entry fetch), Query (entries find), Asset (single asset fetch), AssetLibrary (assets find)
8-
- Supported asset field values: `user_defined_fields`, `embedded`, `ai_suggested`, `visual_markups`
8+
- Valid parameters: `user_defined_fields`, `embedded_metadata`, `ai_generated_metadata`, `visual_markups`
99
- Method is chainable; when called with no arguments, the query parameter is not set
1010

1111
### Version: 2.25.2

Contentstack.Core.Tests/AssetTest.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1021,6 +1021,20 @@ public async Task AssetFields_SingleField_RequestSucceeds()
10211021
Assert.NotEmpty(result.FileName);
10221022
}
10231023

1024+
[Fact]
1025+
public async Task AssetFields_WithMultipleFields_RequestSucceeds()
1026+
{
1027+
string uid = await FetchAssetUID();
1028+
Asset asset = client.Asset(uid);
1029+
asset.AssetFields("user_defined_fields", "embedded_metadata", "visual_markups");
1030+
Asset result = await asset.Fetch();
1031+
1032+
if (result == null)
1033+
Assert.Fail("Asset.Fetch with AssetFields multiple fields did not return a result.");
1034+
Assert.NotNull(result.Uid);
1035+
Assert.NotEmpty(result.FileName);
1036+
}
1037+
10241038
[Fact]
10251039
public async Task AssetFields_AssetLibrary_SingleField_RequestSucceeds()
10261040
{
@@ -1033,6 +1047,18 @@ public async Task AssetFields_AssetLibrary_SingleField_RequestSucceeds()
10331047
Assert.NotNull(assets.Items);
10341048
}
10351049

1050+
[Fact]
1051+
public async Task AssetFields_AssetLibrary_WithMultipleFields_RequestSucceeds()
1052+
{
1053+
AssetLibrary assetLibrary = client.AssetLibrary();
1054+
assetLibrary.AssetFields("user_defined_fields", "embedded_metadata", "ai_generated_metadata", "visual_markups");
1055+
ContentstackCollection<Asset> assets = await assetLibrary.FetchAll();
1056+
1057+
if (assets == null)
1058+
Assert.Fail("AssetLibrary.FetchAll with AssetFields multiple fields did not return a result.");
1059+
Assert.NotNull(assets.Items);
1060+
}
1061+
10361062
[Fact]
10371063
public async Task AssetFields_WithNoArguments_RequestSucceeds()
10381064
{

Contentstack.Core.Tests/EntryTest.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,7 @@ public async Task AssetFields_SingleEntry_RequestSucceeds()
465465
string uid = await GetUID("source1");
466466
Entry sourceEntry = contenttype.Entry(uid);
467467

468-
sourceEntry.AssetFields("user_defined_fields", "visual_markups");
468+
sourceEntry.AssetFields("user_defined_fields", "embedded_metadata", "ai_generated_metadata", "visual_markups");
469469
var result = await sourceEntry.Fetch<Entry>();
470470

471471
if (result == null)
@@ -505,6 +505,21 @@ public async Task AssetFields_SingleField_RequestSucceeds()
505505
Assert.NotNull(result.Uid);
506506
}
507507

508+
[Fact]
509+
public async Task AssetFields_WithMultipleFields_RequestSucceeds()
510+
{
511+
ContentType contenttype = client.ContentType(source);
512+
string uid = await GetUID("source1");
513+
Entry sourceEntry = contenttype.Entry(uid);
514+
515+
sourceEntry.AssetFields("user_defined_fields", "embedded_metadata", "visual_markups");
516+
var result = await sourceEntry.Fetch<Entry>();
517+
518+
if (result == null)
519+
Assert.Fail("Entry.Fetch with AssetFields multiple fields did not return a result.");
520+
Assert.NotNull(result.Uid);
521+
}
522+
508523
[Fact]
509524
public async Task AssetFields_WithNoArguments_RequestSucceeds()
510525
{

Contentstack.Core.Tests/QueryTest.cs

Lines changed: 74 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1624,13 +1624,86 @@ public async Task IncludeSchema()
16241624
public async Task AssetFieldsQueryEntriesRequestSucceeds()
16251625
{
16261626
Query query = client.ContentType(source).Query();
1627-
query.AssetFields("user_defined_fields", "visual_markups");
1627+
query.AssetFields("user_defined_fields", "embedded_metadata", "ai_generated_metadata", "visual_markups");
16281628
var result = await query.Find<Entry>();
16291629

16301630
if (result == null)
16311631
Assert.Fail("Query.Find with AssetFields did not return a result.");
16321632
Assert.NotNull(result.Items);
16331633
}
1634+
1635+
[Fact]
1636+
public async Task AssetFields_ChainedWithIncludeMetadata_RequestSucceeds()
1637+
{
1638+
var result = await client.ContentType(source).Query()
1639+
.AssetFields("user_defined_fields")
1640+
.IncludeMetadata()
1641+
.Find<Entry>();
1642+
1643+
if (result == null)
1644+
Assert.Fail("Query.Find with AssetFields and IncludeMetadata did not return a result.");
1645+
Assert.NotNull(result.Items);
1646+
}
1647+
1648+
[Fact]
1649+
public async Task AssetFields_SingleField_RequestSucceeds()
1650+
{
1651+
Query query = client.ContentType(source).Query();
1652+
query.AssetFields("user_defined_fields");
1653+
var result = await query.Find<Entry>();
1654+
1655+
if (result == null)
1656+
Assert.Fail("Query.Find with AssetFields single field did not return a result.");
1657+
Assert.NotNull(result.Items);
1658+
}
1659+
1660+
[Fact]
1661+
public async Task AssetFields_WithMultipleFields_RequestSucceeds()
1662+
{
1663+
Query query = client.ContentType(source).Query();
1664+
query.AssetFields("user_defined_fields", "embedded_metadata", "visual_markups");
1665+
var result = await query.Find<Entry>();
1666+
1667+
if (result == null)
1668+
Assert.Fail("Query.Find with AssetFields multiple fields did not return a result.");
1669+
Assert.NotNull(result.Items);
1670+
}
1671+
1672+
[Fact]
1673+
public async Task AssetFields_WithNoArguments_RequestSucceeds()
1674+
{
1675+
Query query = client.ContentType(source).Query();
1676+
query.AssetFields();
1677+
var result = await query.Find<Entry>();
1678+
1679+
if (result == null)
1680+
Assert.Fail("Query.Find with AssetFields() no arguments did not return a result.");
1681+
Assert.NotNull(result.Items);
1682+
}
1683+
1684+
[Fact]
1685+
public async Task AssetFields_WithNull_RequestSucceeds()
1686+
{
1687+
Query query = client.ContentType(source).Query();
1688+
query.AssetFields(null);
1689+
var result = await query.Find<Entry>();
1690+
1691+
if (result == null)
1692+
Assert.Fail("Query.Find with AssetFields(null) did not return a result.");
1693+
Assert.NotNull(result.Items);
1694+
}
1695+
1696+
[Fact]
1697+
public async Task AssetFields_WithEmptyArray_RequestSucceeds()
1698+
{
1699+
Query query = client.ContentType(source).Query();
1700+
query.AssetFields(new string[0]);
1701+
var result = await query.Find<Entry>();
1702+
1703+
if (result == null)
1704+
Assert.Fail("Query.Find with AssetFields(empty array) did not return a result.");
1705+
Assert.NotNull(result.Items);
1706+
}
16341707
}
16351708
}
16361709

Contentstack.Core.Unit.Tests/AssetLibraryUnitTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ public void AssetFields_WithMultipleFields_AddsQueryParameter()
203203
{
204204
// Arrange
205205
var assetLibrary = CreateAssetLibrary();
206-
var fields = new[] { "user_defined_fields", "embedded", "ai_suggested" };
206+
var fields = new[] { "user_defined_fields", "embedded_metadata", "ai_generated_metadata" };
207207

208208
// Act
209209
AssetLibrary result = assetLibrary.AssetFields(fields);
@@ -227,7 +227,7 @@ public void AssetFields_ReturnsSameInstance_ForChaining()
227227
var assetLibrary = CreateAssetLibrary();
228228

229229
// Act
230-
AssetLibrary result = assetLibrary.AssetFields("embedded");
230+
AssetLibrary result = assetLibrary.AssetFields("embedded_metadata");
231231

232232
// Assert
233233
Assert.NotNull(result);

Contentstack.Core.Unit.Tests/AssetUnitTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ public void AssetFields_WithMultipleFields_AddsQueryParameter()
400400
{
401401
// Arrange
402402
var asset = CreateAsset();
403-
var fields = new[] { "embedded", "visual_markups" };
403+
var fields = new[] { "embedded_metadata", "visual_markups" };
404404

405405
// Act
406406
Asset result = asset.AssetFields(fields);
@@ -424,7 +424,7 @@ public void AssetFields_ReturnsSameInstance_ForChaining()
424424
var asset = CreateAsset();
425425

426426
// Act
427-
Asset result = asset.AssetFields("ai_suggested");
427+
Asset result = asset.AssetFields("ai_generated_metadata");
428428

429429
// Assert
430430
Assert.NotNull(result);

Contentstack.Core.Unit.Tests/EntryUnitTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1370,7 +1370,7 @@ public void AssetFields_WithMultipleFields_AddsQueryParameter()
13701370
{
13711371
// Arrange
13721372
var entry = CreateEntry();
1373-
var fields = new[] { "user_defined_fields", "embedded", "ai_suggested" };
1373+
var fields = new[] { "user_defined_fields", "embedded_metadata", "ai_generated_metadata" };
13741374

13751375
// Act
13761376
Entry result = entry.AssetFields(fields);
@@ -1394,7 +1394,7 @@ public void AssetFields_ReturnsSameInstance_ForChaining()
13941394
var entry = CreateEntry();
13951395

13961396
// Act
1397-
Entry result = entry.AssetFields("embedded");
1397+
Entry result = entry.AssetFields("embedded_metadata");
13981398

13991399
// Assert
14001400
Assert.NotNull(result);

Contentstack.Core.Unit.Tests/QueryUnitTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -786,7 +786,7 @@ public void AssetFields_WithMultipleFields_AddsQueryParameter()
786786
{
787787
// Arrange
788788
var query = CreateQuery();
789-
var fields = new[] { "user_defined_fields", "embedded" };
789+
var fields = new[] { "user_defined_fields", "embedded_metadata" };
790790

791791
// Act
792792
Query result = query.AssetFields(fields);
@@ -810,7 +810,7 @@ public void AssetFields_ReturnsSameInstance_ForChaining()
810810
var query = CreateQuery();
811811

812812
// Act
813-
Query result = query.AssetFields("embedded");
813+
Query result = query.AssetFields("embedded_metadata");
814814

815815
// Assert
816816
Assert.NotNull(result);

Contentstack.Core/Models/Asset.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System;
1+
using System;
22
using System.Collections.Generic;
33
using System.IO;
44
using System.Linq;
@@ -301,13 +301,13 @@ public Asset AddParam(string key, string value)
301301

302302
/// <summary>
303303
/// Request specific asset-related metadata in the response (CDA asset_fields[]).
304-
/// Supported values include: user_defined_fields, embedded, ai_suggested, visual_markups.
304+
/// Valid parameters: user_defined_fields, embedded_metadata, ai_generated_metadata, visual_markups.
305305
/// </summary>
306306
/// <param name="fields">Asset field names to include.</param>
307307
/// <returns>Current instance of Asset for chaining.</returns>
308308
/// <example>
309309
/// <code>
310-
/// stack.Asset(uid).AssetFields("user_defined_fields", "embedded").Fetch()
310+
/// stack.Asset(uid).AssetFields("user_defined_fields", "embedded_metadata").Fetch()
311311
/// </code>
312312
/// </example>
313313
public Asset AssetFields(params string[] fields)

Contentstack.Core/Models/AssetLibrary.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System;
1+
using System;
22
using System.Collections.Generic;
33
using System.IO;
44
using System.Linq;
@@ -247,7 +247,7 @@ public AssetLibrary AddParam(string key, string value)
247247

248248
/// <summary>
249249
/// Request specific asset-related metadata in the response (CDA asset_fields[]).
250-
/// Supported values include: user_defined_fields, embedded, ai_suggested, visual_markups.
250+
/// Valid parameters: user_defined_fields, embedded_metadata, ai_generated_metadata, visual_markups.
251251
/// </summary>
252252
/// <param name="fields">Asset field names to include.</param>
253253
/// <returns>Current instance of AssetLibrary for chaining.</returns>

0 commit comments

Comments
 (0)