Skip to content

Commit 74f80ec

Browse files
committed
ING-1283: Use Expires Header from MutateIn request
1 parent d2d11de commit 74f80ec

2 files changed

Lines changed: 34 additions & 27 deletions

File tree

gateway/dapiimpl/server_v1/dataapi_subdoc.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,14 @@ func (s *DataApiServer) MutateInDocument(
184184
opts.CollectionName = in.CollectionName
185185
opts.Key = key
186186

187+
if in.Params.Expires != nil {
188+
expiry, errSt := parseStringToGocbcorexExpiry(*in.Params.Expires)
189+
if errSt != nil {
190+
return nil, errSt.Err()
191+
}
192+
opts.Expiry = expiry
193+
}
194+
187195
if in.Body.StoreSemantic != nil {
188196
switch *in.Body.StoreSemantic {
189197
case dataapiv1.StoreSemanticInsert:

gateway/test/dapi_crud_test.go

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3813,36 +3813,35 @@ func (s *GatewayOpsTestSuite) TestDapiMutateIn() {
38133813
}`))
38143814
})
38153815

3816-
// BUG(ING-1283) - Data API mutate in ignores Expires header
3817-
// s.IterDapiExpiryHeaderTests(func(expiry string, modifyOpts func(*checkDocumentOptions)) {
3818-
// docId := s.binaryDocId([]byte(`{}`))
3816+
s.IterDapiExpiryHeaderTests(func(expiry string, modifyOpts func(*checkDocumentOptions)) {
3817+
docId := s.binaryDocId([]byte(`{}`))
38193818

3820-
// resp := s.sendTestHttpRequest(&testHttpRequest{
3821-
// Method: http.MethodPost,
3822-
// Path: fmt.Sprintf(
3823-
// "/v1.alpha/buckets/%s/scopes/%s/collections/%s/documents/%s/mutate",
3824-
// s.bucketName, s.scopeName, s.collectionName, docId,
3825-
// ),
3826-
// Headers: map[string]string{
3827-
// "Authorization": s.basicRestCreds,
3828-
// "Expires": expiry,
3829-
// },
3830-
// Body: []byte(`{"operations":[{"operation":"DictAdd","path":"add", "value": 43}]}`),
3831-
// })
3832-
// requireRestSuccess(s.T(), resp)
3833-
// assertRestValidEtag(s.T(), resp)
3819+
resp := s.sendTestHttpRequest(&testHttpRequest{
3820+
Method: http.MethodPost,
3821+
Path: fmt.Sprintf(
3822+
"/v1.alpha/buckets/%s/scopes/%s/collections/%s/documents/%s/mutate",
3823+
s.bucketName, s.scopeName, s.collectionName, docId,
3824+
),
3825+
Headers: map[string]string{
3826+
"Authorization": s.basicRestCreds,
3827+
"Expires": expiry,
3828+
},
3829+
Body: []byte(`{"operations":[{"operation":"DictAdd","path":"add", "value": 43}]}`),
3830+
})
3831+
requireRestSuccess(s.T(), resp)
3832+
assertRestValidEtag(s.T(), resp)
38343833

3835-
// defaultOpts := checkDocumentOptions{
3836-
// BucketName: s.bucketName,
3837-
// ScopeName: s.scopeName,
3838-
// CollectionName: s.collectionName,
3839-
// DocId: docId,
3840-
// Content: []byte(`{"add":43}`),
3841-
// }
3842-
// modifyOpts(&defaultOpts)
3834+
defaultOpts := checkDocumentOptions{
3835+
BucketName: s.bucketName,
3836+
ScopeName: s.scopeName,
3837+
CollectionName: s.collectionName,
3838+
DocId: docId,
3839+
Content: []byte(`{"add":43}`),
3840+
}
3841+
modifyOpts(&defaultOpts)
38433842

3844-
// s.checkDocument(s.T(), defaultOpts)
3845-
// })
3843+
s.checkDocument(s.T(), defaultOpts)
3844+
})
38463845

38473846
s.RunCommonDapiErrorCases(func(opts *commonDapiTestData) *testHttpResponse {
38483847
return s.sendTestHttpRequest(&testHttpRequest{

0 commit comments

Comments
 (0)