MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / GetDeepMutableBody

Method GetDeepMutableBody

db/document.go:396–416  ·  view source on GitHub ↗

Get a deep mutable copy of the body, using _rawBody. Initializes _rawBody based on _body if not already present.

()

Source from the content-addressed store, hash-verified

394
395// Get a deep mutable copy of the body, using _rawBody. Initializes _rawBody based on _body if not already present.
396func (doc *Document) GetDeepMutableBody() (Body, error) {
397 // If doc._rawBody isn't present, marshal from doc.Body
398 if doc._rawBody == nil {
399 if doc._body == nil {
400 return nil, fmt.Errorf("Unable to get document body due to an empty raw body and body in the document")
401 }
402 var err error
403 doc._rawBody, err = base.JSONMarshal(doc._body)
404 if err != nil {
405 return nil, fmt.Errorf("Unable to marshal document body into raw body : %w", err)
406 }
407 }
408
409 var mutableBody Body
410 err := mutableBody.Unmarshal(doc._rawBody)
411 if err != nil {
412 return nil, fmt.Errorf("Unable to unmarshal document body into raw body : %w", err)
413 }
414
415 return mutableBody, nil
416}
417
418func (doc *Document) RemoveBody() {
419 doc._body = nil

Calls 3

UnmarshalMethod · 0.95
JSONMarshalFunction · 0.92
ErrorfMethod · 0.80