Add Ecto.Changeset pattern match, fix data sent to mutate(). #70
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
Ecto.Changeset, valid?: false
pattern match allows people to use Ecto Changeset in Dlex like they would with Ecto. If the changeset is valid, data is mutated in Dgraph, else returns{:error, changeset}
.For example:
changeset = Post.create_changeset(Post{}, params)
withRepo.set(changeset)
Furthermore, inserting data via changesets resulted in error:
no function clause matching in MyApp.Post.__schema__/2
. It also added unwanted fields from Ecto Changeset like__meta__
,id
, and predicates from schema withnil
values. This was becausedata = struct(type, Map.put(changes, :uid, uid))
created a struct over which encode_kv() couldn't pattern match.Now, data is inserted as expected using the Ecto.Changeset
changes
field.