Basic transaction system
This commit is contained in:
58
api/src/graphql/transactions.sdl.ts
Normal file
58
api/src/graphql/transactions.sdl.ts
Normal 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")
|
||||
}
|
||||
`
|
||||
48
api/src/graphql/users.sdl.ts
Normal file
48
api/src/graphql/users.sdl.ts
Normal 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")
|
||||
}
|
||||
`
|
||||
Reference in New Issue
Block a user