@@ -12,12 +12,6 @@ public readonly record struct UpdateRequestBuilder<T>
12
12
private readonly Func < T , IAttributeExpression > _attributeExpressionSelector ;
13
13
private readonly IDynamoDBKeyMarshaller _keyMarshaller ;
14
14
private readonly Func < IDynamoDBKeyMarshaller , T , Dictionary < string , AttributeValue > > _keySelector ;
15
- private readonly ReturnConsumedCapacity _returnConsumedCapacity = ReturnConsumedCapacity . NONE ;
16
- private readonly ReturnItemCollectionMetrics _returnItemCollectionMetrics = ReturnItemCollectionMetrics . NONE ;
17
- private readonly ReturnValue _returnValues = ReturnValue . NONE ;
18
-
19
- private readonly ReturnValuesOnConditionCheckFailure _returnValuesOnConditionCheckFailure =
20
- ReturnValuesOnConditionCheckFailure . NONE ;
21
15
22
16
private readonly string _tableName ;
23
17
@@ -57,32 +51,16 @@ public Func<IDynamoDBKeyMarshaller, T, Dictionary<string, AttributeValue>> KeySe
57
51
}
58
52
59
53
/// <inheritdoc cref="UpdateItemRequest.ReturnConsumedCapacity" />
60
- public ReturnConsumedCapacity ReturnConsumedCapacity
61
- {
62
- get => _returnConsumedCapacity ;
63
- init => _returnConsumedCapacity = value ?? throw new ArgumentNullException ( nameof ( value ) ) ;
64
- }
54
+ public ReturnConsumedCapacity ? ReturnConsumedCapacity { get ; init ; } = null ;
65
55
66
56
/// <inheritdoc cref="UpdateItemRequest.ReturnItemCollectionMetrics" />
67
- public ReturnItemCollectionMetrics ReturnItemCollectionMetrics
68
- {
69
- get => _returnItemCollectionMetrics ;
70
- init => _returnItemCollectionMetrics = value ?? throw new ArgumentNullException ( nameof ( value ) ) ;
71
- }
57
+ public ReturnItemCollectionMetrics ? ReturnItemCollectionMetrics { get ; init ; } = null ;
72
58
73
59
/// <inheritdoc cref="UpdateItemRequest.ReturnValues" />
74
- public ReturnValue ReturnValues
75
- {
76
- get => _returnValues ;
77
- init => _returnValues = value ?? throw new ArgumentNullException ( nameof ( value ) ) ;
78
- }
60
+ public ReturnValue ? ReturnValues { get ; init ; } = null ;
79
61
80
62
/// <inheritdoc cref="UpdateItemRequest.ReturnValuesOnConditionCheckFailure" />
81
- public ReturnValuesOnConditionCheckFailure ReturnValuesOnConditionCheckFailure
82
- {
83
- get => _returnValuesOnConditionCheckFailure ;
84
- init => _returnValuesOnConditionCheckFailure = value ?? throw new ArgumentNullException ( nameof ( value ) ) ;
85
- }
63
+ public ReturnValuesOnConditionCheckFailure ? ReturnValuesOnConditionCheckFailure { get ; init ; } = null ;
86
64
87
65
88
66
/// <summary>
@@ -91,21 +69,32 @@ public ReturnValuesOnConditionCheckFailure ReturnValuesOnConditionCheckFailure
91
69
public UpdateItemRequest Build ( T arg )
92
70
{
93
71
var expression = _attributeExpressionSelector ( arg ) ;
94
- return new UpdateItemRequest
72
+ var update = new UpdateItemRequest
95
73
{
96
74
UpdateExpression = expression . Expressions [ 0 ] ,
97
75
ConditionExpression = expression . Expressions . Count is 2 ? expression . Expressions [ 1 ] : null ,
98
76
TableName = TableName ,
99
77
Key = KeySelector ( _keyMarshaller , arg ) ,
100
- ReturnValues = ReturnValues ,
101
78
ExpressionAttributeNames = expression . Names ,
102
79
ExpressionAttributeValues = expression . Values ,
103
- ReturnConsumedCapacity = ReturnConsumedCapacity ,
104
- ReturnItemCollectionMetrics = ReturnItemCollectionMetrics ,
105
- ReturnValuesOnConditionCheckFailure = ReturnValuesOnConditionCheckFailure ,
106
80
Expected = null ,
107
81
AttributeUpdates = null ,
108
82
ConditionalOperator = null
109
83
} ;
84
+
85
+ if ( ReturnValues is not null )
86
+ update . ReturnValues = ReturnValues ;
87
+
88
+ if ( ReturnConsumedCapacity is not null )
89
+ update . ReturnConsumedCapacity = ReturnConsumedCapacity ;
90
+
91
+ if ( ReturnItemCollectionMetrics is not null )
92
+ update . ReturnItemCollectionMetrics = ReturnItemCollectionMetrics ;
93
+
94
+ if ( ReturnValuesOnConditionCheckFailure is not null )
95
+ update . ReturnValuesOnConditionCheckFailure = ReturnValuesOnConditionCheckFailure ;
96
+
97
+
98
+ return update ;
110
99
}
111
100
}
0 commit comments