g.
MergeV(map[interface{}]interface{}{
gremlingo.T.Id: universalId,
}).
Option(gremlingo.Merge.OnCreate, gremlinUserOnCreate).
Option(gremlingo.Merge.OnMatch, gremlinUserOnMatch).
Id().
MergeV(map[interface{}]interface{}{
gremlingo.T.Id: userUUID,
gremlingo.T.Label: "User",
"email": user["email"],
}).
Option(gremlingo.Merge.OnCreate, parentUserOnCreate).
Option(gremlingo.Merge.OnMatch, parentUserOnMatch).
Id().
MergeE(map[interface{}]interface{}{
gremlingo.T.Label: "HAS_USER_ACCOUNT",
gremlingo.Direction.Out: gremlingo.Merge.OutV,
gremlingo.Direction.In: gremlingo.Merge.InV,
}).
Option(gremlingo.Merge.OutV, map[interface{}]interface{}{
gremlingo.T.Label: "User",
"email": user["email"],
}).
Option(gremlingo.Merge.InV, map[interface{}]interface{}{
gremlingo.T.Label: "GremlinUser",
"email": user["email"],
}).
Id().Next()
g.
MergeV(map[interface{}]interface{}{
gremlingo.T.Id: universalId,
}).
Option(gremlingo.Merge.OnCreate, gremlinUserOnCreate).
Option(gremlingo.Merge.OnMatch, gremlinUserOnMatch).
Id().
MergeV(map[interface{}]interface{}{
gremlingo.T.Id: userUUID,
gremlingo.T.Label: "User",
"email": user["email"],
}).
Option(gremlingo.Merge.OnCreate, parentUserOnCreate).
Option(gremlingo.Merge.OnMatch, parentUserOnMatch).
Id().
MergeE(map[interface{}]interface{}{
gremlingo.T.Label: "HAS_USER_ACCOUNT",
gremlingo.Direction.Out: gremlingo.Merge.OutV,
gremlingo.Direction.In: gremlingo.Merge.InV,
}).
Option(gremlingo.Merge.OutV, map[interface{}]interface{}{
gremlingo.T.Label: "User",
"email": user["email"],
}).
Option(gremlingo.Merge.InV, map[interface{}]interface{}{
gremlingo.T.Label: "GremlinUser",
"email": user["email"],
}).
Id().Next()