From 668d0075912dfd49ea26247f499f71a338eb868c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Salazar?= <73718835+joshrs23@users.noreply.github.com> Date: Fri, 28 Nov 2025 10:34:29 -0500 Subject: [PATCH] user entitie --- dataconnect/connector/user/mutations.gql | 41 ++++++++++++++++++++++ dataconnect/connector/user/queries.gql | 43 ++++++++++++++++++++++++ dataconnect/schema/user.gql | 15 +++++++++ 3 files changed, 99 insertions(+) create mode 100644 dataconnect/connector/user/mutations.gql create mode 100644 dataconnect/connector/user/queries.gql create mode 100644 dataconnect/schema/user.gql diff --git a/dataconnect/connector/user/mutations.gql b/dataconnect/connector/user/mutations.gql new file mode 100644 index 00000000..cf6444fe --- /dev/null +++ b/dataconnect/connector/user/mutations.gql @@ -0,0 +1,41 @@ +mutation CreateUser( + $id: UUID!, # Firebase UID + $email: String!, + $fullName: String!, + $role: UserBaseRole!, + $userRole: String +) @auth(level: USER) { + user_insert( + data: { + id: $id + email: $email + fullName: $fullName + role: $role + userRole: $userRole + } + ) +} + +mutation UpdateUser( + $id: String!, + $email: String, + $fullName: String, + $role: UserBaseRole, + $userRole: String +) @auth(level: USER) { + user_update( + id: $id, + data: { + email: $email + fullName: $fullName + role: $role + userRole: $userRole + } + ) +} + +mutation DeleteUser( + $id: String! +) @auth(level: USER) { + user_delete(id: $id) +} diff --git a/dataconnect/connector/user/queries.gql b/dataconnect/connector/user/queries.gql new file mode 100644 index 00000000..417860bf --- /dev/null +++ b/dataconnect/connector/user/queries.gql @@ -0,0 +1,43 @@ +query listUsers @auth(level: USER) { + users { + id + email + fullName + role + userRole + createdDate + updatedDate + } +} + +query getUserById( + $id: String! +) @auth(level: USER) { + user(id: $id) { + id + email + fullName + role + userRole + } +} + +query filterUsers( + $email: String, + $role: UserBaseRole, + $userRole: String +) @auth(level: USER) { + users( + where: { + email: { eq: $email } + role: { eq: $role } + userRole: { eq: $userRole } + } + ) { + id + email + fullName + role + userRole + } +} diff --git a/dataconnect/schema/user.gql b/dataconnect/schema/user.gql new file mode 100644 index 00000000..b5982534 --- /dev/null +++ b/dataconnect/schema/user.gql @@ -0,0 +1,15 @@ +enum UserBaseRole { + ADMIN + USER +} + +type User @table(name: "users") { + id: UUID! # user_id / uid de Firebase + email: String! + fullName: String! + role: UserBaseRole! + userRole: String + createdDate: Timestamp @default(expr: "request.time") + updatedDate: Timestamp @default(expr: "request.time") + createdBy: String @default(expr: "auth.uid") +}