Sorry, This is how I add data in python code
url_path = "mutate?commitNow=true"
query = f"""
upsert {{
query {{
user_query(func: eq(uuid, "{user.user_uuid.hex}")) {{
user as uid
}}
"""
mutations = f"""mutation {{ set {{
uid(user) <uuid> "{user.user_uuid.hex}" .
uid(user) <is_shadow_banned> "{int(user.is_shadow_banned)}" .
uid(user) <is_blocked> "{int(user.is_blocked)}" .
uid(user) <phone> "{user.phone}" .
uid(user) <is_default_nickname> "{int(user.is_default_nickname)}" .
uid(user) <dgraph.type> "User" .
"""
created_at = int(datetime.datetime.now().timestamp())
for idx, contact_user in enumerate(users):
query = f"""{query}
contact_query_{idx}(func: eq(phone, "{contact_user["phone"]}")) {{
contact_{idx} as uid
}}
"""
if "profile_uuid" in contact_user:
mutations = f"""
{mutations}
uid(contact_{idx}) <uuid> "{contact_user["profile_uuid"].hex}" .
uid(contact_{idx}) <is_shadow_banned> "{int(contact_user["is_shadow_banned"])}" .
uid(contact_{idx}) <is_blocked> "{int(contact_user["is_blocked"])}" .
uid(contact_{idx}) <phone> "{contact_user["phone"]}" .
uid(contact_{idx}) <updated_at> "{contact_user["updated_at"]}" .
uid(contact_{idx}) <is_default_nickname> "{int(contact_user["is_default_nickname"])}" .
uid(contact_{idx}) <dgraph.type> "User" .
uid(user) <HAS_CONTACT> uid(contact_{idx}) (created_at={created_at}) .
"""
if contact_user["has_subscribe"]:
mutations = f"""{mutations}
uid(user) <SUBSCRIBED> uid(contact_{idx}) .
"""
if contact_user["has_subscribe_out"]:
mutations = f"""{mutations}
uid(contact_{idx}) <SUBSCRIBED> uid(user) .
"""
if contact_user["in_blacklist"]:
mutations = f"""{mutations}
uid(user) <BLACKLISTED> uid(contact_{idx}) .
"""
if contact_user["user_in_blacklist"]:
mutations = f"""{mutations}
uid(contact_{idx}) <BLACKLISTED> uid(user) .
"""
else:
mutations = f"""{mutations}
uid(contact_{idx}) <phone> "{contact_user["phone"]}" .
uid(contact_{idx}) <updated_at> "{contact_user["updated_at"]}" .
uid(contact_{idx}) <dgraph.type> "User" .
uid(user) <HAS_CONTACT> uid(contact_{idx}) (created_at={created_at}) .
uid(contact_{idx}) <phone_book_order> "{contact_user["phone_book_order"]}" .
"""
dql = f"{query}}}{mutations}}}}}}}"
logger.info(dql)
resp = await self._mutate(
dql,
path=url_path,
)
resp_json = resp.json()