Get a deep mutable copy of the body, using _rawBody. Initializes _rawBody based on _body if not already present.
()
| 394 | |
| 395 | // Get a deep mutable copy of the body, using _rawBody. Initializes _rawBody based on _body if not already present. |
| 396 | func (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 | |
| 418 | func (doc *Document) RemoveBody() { |
| 419 | doc._body = nil |