Expose precondition error code header

Co-authored-by: Pijus Kamandulis <pikami@users.noreply.github.com>
This commit is contained in:
Cursor Agent
2026-06-05 20:14:46 +00:00
parent 97dc9fb465
commit 2f1cfd7069
3 changed files with 3 additions and 1 deletions
+1
View File
@@ -105,6 +105,7 @@ func (h *Handlers) ReplaceDocument(c *gin.Context) {
if ifMatch := c.GetHeader(headers.IfMatch); ifMatch != "" {
if existingDocument["_etag"] != ifMatch {
c.Header(headers.ErrorCode, "PreconditionFailed")
c.JSON(http.StatusPreconditionFailed, constants.PreconditionFailedResponse)
return
}
+1
View File
@@ -4,6 +4,7 @@ const (
AIM = "A-Im"
Authorization = "authorization"
CosmosLsn = "x-ms-cosmos-llsn"
ErrorCode = "x-ms-error-code"
ETag = "etag"
GlobalCommittedLsn = "x-ms-global-committed-lsn"
IfMatch = "if-match"
+1 -1
View File
@@ -403,7 +403,7 @@ func Test_Documents(t *testing.T) {
var respErr *azcore.ResponseError
if errors.As(err, &respErr) {
assert.Equal(t, http.StatusPreconditionFailed, respErr.StatusCode)
assert.Equal(t, "PreconditionFailed", respErr.ErrorCode)
assert.Equal(t, "PreconditionFailed", respErr.RawResponse.Header.Get("x-ms-error-code"))
responseBody, readErr := io.ReadAll(respErr.RawResponse.Body)
assert.Nil(t, readErr)