From 2f1cfd7069533b485ddbd008f372b8fadb1e4093 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Fri, 5 Jun 2026 20:14:46 +0000 Subject: [PATCH] Expose precondition error code header Co-authored-by: Pijus Kamandulis --- api/handlers/documents.go | 1 + api/headers/headers.go | 1 + api/tests/documents_test.go | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/api/handlers/documents.go b/api/handlers/documents.go index 5667851..5a56e89 100644 --- a/api/handlers/documents.go +++ b/api/handlers/documents.go @@ -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 } diff --git a/api/headers/headers.go b/api/headers/headers.go index d69f8ac..92c9e26 100644 --- a/api/headers/headers.go +++ b/api/headers/headers.go @@ -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" diff --git a/api/tests/documents_test.go b/api/tests/documents_test.go index 132aed9..a1a8bfa 100644 --- a/api/tests/documents_test.go +++ b/api/tests/documents_test.go @@ -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)