1
0

Basic transaction system

This commit is contained in:
Ahmed Al-Taiar
2023-11-14 18:54:44 -05:00
parent f6f01594ec
commit 8060e1e452
60 changed files with 2037 additions and 507 deletions

View File

@@ -0,0 +1,58 @@
export const schema = gql`
type Transaction {
id: Int!
date: DateTime!
user: User!
userId: Int!
type: TransactionType!
parts: [JSON]!
}
enum TransactionType {
in
out
}
enum FilterTransactionsByType {
in
out
both
}
type UserTransactions {
transactions: [Transaction!]!
filter: FilterTransactionsByType!
}
type Query {
transactions(filter: FilterTransactionsByType!): UserTransactions!
@requireAuth(roles: "admin")
transaction(id: Int!): Transaction @requireAuth(roles: "admin")
userTransactions(
userId: Int!
filter: FilterTransactionsByType!
): UserTransactions! @requireAuth
}
input CreateTransactionInput {
date: DateTime!
userId: Int!
type: TransactionType!
parts: [JSON]!
}
input UpdateTransactionInput {
date: DateTime
userId: Int
type: TransactionType
parts: [JSON]!
}
type Mutation {
createTransaction(input: CreateTransactionInput!): Transaction! @requireAuth
returnTransaction(id: Int!, userId: Int!): Transaction! @requireAuth
updateTransaction(id: Int!, input: UpdateTransactionInput!): Transaction!
@requireAuth(roles: "admin")
deleteTransaction(id: Int!): Transaction! @requireAuth(roles: "admin")
}
`

View File

@@ -0,0 +1,48 @@
export const schema = gql`
type User {
id: Int!
firstName: String!
lastName: String!
email: String!
hashedPassword: String!
salt: String!
resetToken: String
resetTokenExpiresAt: DateTime
roles: String!
transactions: [Transaction]!
}
type Query {
users: [User!]! @requireAuth(roles: "admin")
user(id: Int!): User @requireAuth(roles: "admin")
}
input CreateUserInput {
firstName: String!
lastName: String!
email: String!
hashedPassword: String!
salt: String!
resetToken: String
resetTokenExpiresAt: DateTime
roles: String!
}
input UpdateUserInput {
firstName: String
lastName: String
email: String
hashedPassword: String
salt: String
resetToken: String
resetTokenExpiresAt: DateTime
roles: String
}
type Mutation {
createUser(input: CreateUserInput!): User! @requireAuth(roles: "admin")
updateUser(id: Int!, input: UpdateUserInput!): User!
@requireAuth(roles: "admin")
deleteUser(id: Int!): User! @requireAuth(roles: "admin")
}
`