MCPcopy
hub / github.com/dgraph-io/dgraph / ParseMutationObject

Function ParseMutationObject

edgraph/server.go:2209–2257  ·  view source on GitHub ↗

ParseMutationObject tries to consolidate fields of the api.Mutation into the corresponding field of the returned dql.Mutation. For example, the 3 fields, api.Mutation#SetJson, api.Mutation#SetNquads and api.Mutation#Set are consolidated into the dql.Mutation.Set field. Similarly the 3 fields api.Mut

(ctx context.Context, mu *api.Mutation)

Source from the content-addressed store, hash-verified

2207// dql.Mutation.Set field. Similarly the 3 fields api.Mutation#DeleteJson, api.Mutation#DelNquads
2208// and api.Mutation#Del are merged into the dql.Mutation#Del field.
2209func ParseMutationObject(ctx context.Context, mu *api.Mutation) (*dql.Mutation, error) {
2210 res := &dql.Mutation{Cond: mu.Cond}
2211
2212 if len(mu.SetJson) > 0 {
2213 nqs, md, err := chunker.ParseJSON(mu.SetJson, chunker.SetNquads)
2214 if err != nil {
2215 return nil, err
2216 }
2217 res.Set = append(res.Set, nqs...)
2218 res.Metadata = md
2219 }
2220 if len(mu.DeleteJson) > 0 {
2221 // The metadata is not currently needed for delete operations so it can be safely ignored.
2222 nqs, _, err := chunker.ParseJSON(mu.DeleteJson, chunker.DeleteNquads)
2223 if err != nil {
2224 return nil, err
2225 }
2226 res.Del = append(res.Del, nqs...)
2227 }
2228 if len(mu.SetNquads) > 0 {
2229 nqs, md, err := chunker.ParseRDFs(mu.SetNquads)
2230 if err != nil {
2231 return nil, err
2232 }
2233 res.Set = append(res.Set, nqs...)
2234 res.Metadata = md
2235 }
2236 if len(mu.DelNquads) > 0 {
2237 nqs, _, err := chunker.ParseRDFs(mu.DelNquads)
2238 if err != nil {
2239 return nil, err
2240 }
2241 res.Del = append(res.Del, nqs...)
2242 }
2243
2244 res.Set = append(res.Set, mu.Set...)
2245 res.Del = append(res.Del, mu.Del...)
2246 // parse facets and convert to the binary format so that
2247 // a field of type datetime like "2017-01-01" can be correctly encoded in the
2248 // marshaled binary format as done in the time.Marshal method
2249 if err := validateAndConvertFacets(res.Set); err != nil {
2250 return nil, err
2251 }
2252
2253 if err := validateNQuads(res.Set, res.Del, newReservedPredicateGuard(ctx)); err != nil {
2254 return nil, err
2255 }
2256 return res, nil
2257}
2258
2259func validateAndConvertFacets(nquads []*api.NQuad) error {
2260 for _, m := range nquads {

Callers 1

parseRequestFunction · 0.85

Calls 5

ParseJSONFunction · 0.92
ParseRDFsFunction · 0.92
validateAndConvertFacetsFunction · 0.85
validateNQuadsFunction · 0.85

Tested by

no test coverage detected