file24.hx 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. QUERY create_user(name: String, age: U32, email: String, now: I32) =>
  2. user <- AddN<User>({name: name, age: age, email: email, created_at: now, updated_at: now})
  3. RETURN user
  4. QUERY create_follow(follower_id: ID, followed_id: ID, now: I32) =>
  5. follower <- N<User>(follower_id)
  6. followed <- N<User>(followed_id)
  7. AddE<Follows>({since: now})::From(follower)::To(followed)
  8. RETURN "success"
  9. QUERY get_followed_users(user_id: ID) =>
  10. followed <- N<User>(user_id)::Out<Follows>
  11. RETURN followed
  12. QUERY create_post(user_id: ID, content: String, now: I32) =>
  13. user <- N<User>(user_id)
  14. post <- AddN<Post>({content: content, created_at: now, updated_at: now})
  15. AddE<Created>({created_at: now})::From(user)::To(post)
  16. RETURN post
  17. // property access
  18. QUERY find_users_access() =>
  19. users <- N<User>
  20. RETURN users::{ name: name, age:age }
  21. // property addition
  22. QUERY get_user_details_addition() =>
  23. users <- N<User>
  24. RETURN users::{name: name, followerCount: _::In<Follows>::COUNT}
  25. // property exclusion
  26. // QUERY find_users_exclusion() =>
  27. // users <- N<User>
  28. // RETURN users::!{name, email}
  29. // property remapping
  30. QUERY get_name_remapping_simple() =>
  31. users <- N<User>
  32. RETURN users::{
  33. givenName: _::{name}
  34. }
  35. QUERY find_user_posts_with_creator_details(userID: ID) =>
  36. user <- N<User>(userID)
  37. posts <- user::Out<Created>
  38. RETURN user::|creator|{
  39. creatorName: name,
  40. createdPosts: posts::{
  41. postContent: content,
  42. createdAt: created_at,
  43. updatedAt: updated_at,
  44. }
  45. }