-
Notifications
You must be signed in to change notification settings - Fork 18
/
type.js
66 lines (63 loc) · 1.72 KB
/
type.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
const {
GraphQLObjectType,
GraphQLNonNull,
GraphQLString,
GraphQLBoolean
} = require('graphql');
const GraphQLDate = require('graphql-date');
const { resolver } = require('graphql-sequelize');
module.exports = new GraphQLObjectType({
name: 'Transaction',
description: 'A transaction of cryptocurrency',
fields: () => {
const { Transaction } = require('../');
const Wallet = require('../Wallet/type');
const Coin = require('../Coin/type');
return {
id: {
type: new GraphQLNonNull(GraphQLString),
description: 'The id of the user',
},
startAmount: {
type: new GraphQLNonNull(GraphQLString),
description: 'The amount of startCoin spent'
},
endAmount: {
type: new GraphQLNonNull(GraphQLString),
description: 'The amount of endCoin received'
},
success: {
type: new GraphQLNonNull(GraphQLBoolean),
description: 'Whether the transaction was a success'
},
startWallet: {
type: Wallet,
description: 'Starting wallet',
resolve: resolver(Transaction.StartWallet)
},
endWallet: {
type: Wallet,
description: 'Ending wallet',
resolve: resolver(Transaction.EndWallet)
},
startCoin: {
type: Coin,
description: 'Starting coin',
resolve: resolver(Transaction.StartCoin)
},
endCoin: {
type: Coin,
description: 'Ending coin',
resolve: resolver(Transaction.EndCoin)
},
createdAt: {
type: GraphQLDate,
description: 'Transaction initiation time'
},
updatedAt: {
type: GraphQLDate,
description: 'Transaction resolution time'
}
}
}
})