QUERY CreateUser(name: String, age: U32, email: String) => user <- AddN({name: name, age: age, email: email}) RETURN user QUERY CreateFollow(follower_id: ID, followed_id: ID) => follower <- N(follower_id) followed <- N(followed_id) AddE::From(follower)::To(followed) // don't need to specify the `since` property because it has a default value RETURN "success" QUERY CreatePost(user_id: ID, content: String) => user <- N(user_id) post <- AddN({content: content}) AddE::From(user)::To(post) // don't need to specify the `created_at` property because it has a default value RETURN post QUERY GetUsers() => users <- N RETURN users QUERY GetPosts() => posts <- N RETURN posts QUERY GetPostsByUser(user_id: ID) => posts <- N(user_id)::Out RETURN posts QUERY GetFollowedUsers(user_id: ID) => followed <- N(user_id)::Out RETURN followed QUERY GetFollowedUsersPosts(user_id: ID) => followers <- N(user_id)::Out posts <- followers::Out::RANGE(0, 40) RETURN posts::{ post: _::{content}, creatorID: _::In::ID, }