diff --git a/app/graphql/queries/user_schema.ts b/app/graphql/queries/user_schema.ts index 218ed88..cb77f2c 100644 --- a/app/graphql/queries/user_schema.ts +++ b/app/graphql/queries/user_schema.ts @@ -5,6 +5,12 @@ const user_schema = `#graphql CUSTOMER } + enum GenderEnum { + male + female + others + } + directive @auth on FIELD_DEFINITION directive @userType(requires: [UserType]) on FIELD_DEFINITION @@ -16,7 +22,29 @@ const user_schema = `#graphql } type Mutation { - createMe(firstName: String, lastName: String): UserResponse + createMe(firstName: String, lastName: String, gender: GenderEnum, age: Int, totalMoney: Float): UserResponse + createOrder(orderInput: OrderInput): OrderResponse + } + + input OrderInput { + name: String + orderID: Int + singleProduct: ProductInput + manyProducts: [ProductInput] + } + + input ProductInput { + name: String + price: Int + imageUrl: String + productAvailable: Boolean + } + + type Product { + name: String + price: Int + productAvailable: Boolean + imageUrl: String } type UserObject { @@ -30,6 +58,19 @@ const user_schema = `#graphql message: String } + type OrderData { + name: String + orderID: Int + singleProduct: Product + manyProducts: [Product] + } + + type OrderResponse { + status: String + data: OrderData + message: String + } + type Response { status: String message: String diff --git a/app/graphql/resolvers/user.resolver.ts b/app/graphql/resolvers/user.resolver.ts index 74795d9..10ca817 100644 --- a/app/graphql/resolvers/user.resolver.ts +++ b/app/graphql/resolvers/user.resolver.ts @@ -22,6 +22,13 @@ const userResolvers = { console.log(currentUser) return userService.createMe(currentUser); }, + + createOrder(_: any, { orderInput: args }, {}) { + const body = { + ...args, + }; + return userService.createOrder(body); + }, }, }; diff --git a/app/services/user.service.ts b/app/services/user.service.ts index cff2785..6012948 100644 --- a/app/services/user.service.ts +++ b/app/services/user.service.ts @@ -13,9 +13,7 @@ export class UserService { } }; - public createMe = async ( - currentUser - ) => { + public createMe = async (currentUser) => { try { if (!currentUser) throw new GraphQLError("not data returned!"); console.log(currentUser); @@ -24,4 +22,12 @@ export class UserService { return Helpers.error(error?.message); } }; + + public createOrder = async (createOrderData) => { + try { + return Helpers.success(createOrderData); + } catch (error) { + return Helpers.error(error?.message); + } + }; }