github.com/altipla-consulting/ravendb-go-client@v0.1.3/document_conflict_exception.go (about) 1 package ravendb 2 3 // DocumentConflictError represents document conflict error from the server 4 type DocumentConflictError struct { 5 ConflictError 6 DocID string 7 LargestEtag int64 8 } 9 10 func newDocumentConflictError(message string, docID string, etag int64) *DocumentConflictError { 11 res := &DocumentConflictError{} 12 res.ConflictError = *newConflictError("%s", message) 13 res.DocID = docID 14 res.LargestEtag = etag 15 return res 16 } 17 18 func newDocumentConflictErrorFromMessage(message string) *DocumentConflictError { 19 return newDocumentConflictError(message, "", 0) 20 } 21 22 func newDocumentConflictErrorFromJSON(js string) error { 23 var jsonNode map[string]interface{} 24 err := jsonUnmarshal([]byte(js), &jsonNode) 25 if err != nil { 26 return newBadResponseError("Unable to parse server response: %s", err) 27 } 28 docID, _ := jsonGetAsText(jsonNode, "DocId") 29 message, _ := jsonGetAsText(jsonNode, "Message") 30 largestEtag, _ := jsonGetAsInt64(jsonNode, "LargestEtag") 31 32 return newDocumentConflictError(message, docID, largestEtag) 33 }