Skip to content

Commit fe9733b

Browse files
authored
Merge pull request #382 from joonaun93/master
#294 Implement missing end point (Wallet event list)
2 parents 0247955 + 66e6ff6 commit fe9733b

28 files changed

+1446
-240
lines changed
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
1-
2-
31
let dbm;
42
let type;
53
let seed;
64

75
/**
8-
* We receive the dbmigrate dependency from dbmigrate initially.
9-
* This enables us to not have to rely on NODE_PATH.
10-
*/
11-
exports.setup = function(options, seedLink) {
6+
* We receive the dbmigrate dependency from dbmigrate initially.
7+
* This enables us to not have to rely on NODE_PATH.
8+
*/
9+
exports.setup = function (options, seedLink) {
1210
dbm = options.dbmigrate;
1311
type = dbm.dataType;
1412
seed = seedLink;
1513
};
1614

17-
exports.up = function(db) {
18-
return db.runSql("CREATE TYPE wallet_event_type AS ENUM ('trust_request', 'trust_request_granted', 'trust_request_cancelled_by_originator', 'trust_request_cancelled_by_actor', 'trust_request_cancelled_by_target', 'transfer_requested', 'transfer_request_cancelled_by_source', 'transfer_request_cancelled_by_destination', 'transfer_request_cancelled_by_originator', 'transfer_pending_cancelled_by_source', 'transfer_pending_cancelled_by_destination', 'transfer_pending_cancelled_by_requestor', 'transfer_completed', 'transfer_failed')");
15+
exports.up = function (db) {
16+
return db.runSql(
17+
"CREATE TYPE wallet_event_type AS ENUM ('trust_request', 'trust_request_granted', 'trust_request_cancelled_by_originator', 'trust_request_cancelled_by_actor', 'trust_request_cancelled_by_target', 'transfer_requested', 'transfer_request_cancelled_by_source', 'transfer_request_cancelled_by_destination', 'transfer_request_cancelled_by_originator', 'transfer_pending_cancelled_by_source', 'transfer_pending_cancelled_by_destination', 'transfer_pending_cancelled_by_requestor', 'transfer_completed', 'transfer_failed')",
18+
);
1919
};
2020

21-
exports.down = function(db) {
22-
return db.runSql("DROP TYPE wallet_event_type");
21+
exports.down = function (db) {
22+
return db.runSql('DROP TYPE wallet_event_type');
2323
};
2424

2525
exports._meta = {
26-
"version": 1
26+
version: 1,
2727
};
Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
1-
2-
31
let dbm;
42
let type;
53
let seed;
64

75
/**
8-
* We receive the dbmigrate dependency from dbmigrate initially.
9-
* This enables us to not have to rely on NODE_PATH.
10-
*/
11-
exports.setup = function(options, seedLink) {
6+
* We receive the dbmigrate dependency from dbmigrate initially.
7+
* This enables us to not have to rely on NODE_PATH.
8+
*/
9+
exports.setup = function (options, seedLink) {
1210
dbm = options.dbmigrate;
1311
type = dbm.dataType;
1412
seed = seedLink;
1513
};
1614

17-
exports.up = function(db) {
15+
exports.up = function (db) {
1816
return db.createTable('wallet_event', {
1917
id: { type: 'uuid', primaryKey: true, notNull: true },
2018
wallet_id: { type: 'uuid', notNull: true },
@@ -27,10 +25,10 @@ exports.up = function(db) {
2725
});
2826
};
2927

30-
exports.down = function(db) {
28+
exports.down = function (db) {
3129
return db.dropTable('wallet_event');
3230
};
3331

3432
exports._meta = {
35-
"version": 1
33+
version: 1,
3634
};
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
'use strict';
2+
3+
var dbm;
4+
var type;
5+
var seed;
6+
7+
/**
8+
* We receive the dbmigrate dependency from dbmigrate initially.
9+
* This enables us to not have to rely on NODE_PATH.
10+
*/
11+
exports.setup = function (options, seedLink) {
12+
dbm = options.dbmigrate;
13+
type = dbm.dataType;
14+
seed = seedLink;
15+
};
16+
17+
exports.up = function (db) {
18+
return db.runSql(
19+
`ALTER TYPE wallet_event_type ADD VALUE 'login';
20+
ALTER TYPE wallet_event_type ADD VALUE 'wallet_created';`,
21+
);
22+
};
23+
24+
exports.down = function (db) {
25+
return db.runSql(`
26+
CREATE TYPE wallet_event_type_original AS ENUM ('trust_request', 'trust_request_granted', 'trust_request_cancelled_by_originator', 'trust_request_cancelled_by_actor', 'trust_request_cancelled_by_target', 'transfer_requested', 'transfer_request_cancelled_by_source', 'transfer_request_cancelled_by_destination', 'transfer_request_cancelled_by_originator', 'transfer_pending_cancelled_by_source', 'transfer_pending_cancelled_by_destination', 'transfer_pending_cancelled_by_requestor', 'transfer_completed', 'transfer_failed');
27+
ALTER TABLE wallet_event
28+
ALTER COLUMN type TYPE wallet_event_type_original USING wallet_event_type::text::wallet_event_type_original;
29+
DROP TYPE wallet_event_type;
30+
ALTER TYPE wallet_event_type_original RENAME TO wallet_event_type;
31+
`);
32+
};
33+
34+
exports._meta = {
35+
version: 1,
36+
};
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
'use strict';
2+
3+
var dbm;
4+
var type;
5+
var seed;
6+
7+
/**
8+
* We receive the dbmigrate dependency from dbmigrate initially.
9+
* This enables us to not have to rely on NODE_PATH.
10+
*/
11+
exports.setup = function (options, seedLink) {
12+
dbm = options.dbmigrate;
13+
type = dbm.dataType;
14+
seed = seedLink;
15+
};
16+
17+
exports.up = function (db) {
18+
return db.addColumn('wallet_event', 'payload', {
19+
type: 'json',
20+
notNull: true,
21+
});
22+
};
23+
24+
exports.down = function (db) {
25+
return db.removeColumn('wallet_event', 'payload');
26+
};
27+
28+
exports._meta = {
29+
version: 1,
30+
};
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
const EventService = require('../../services/EventService');
2+
3+
const { eventsGetQuerySchema } = require('./schemas');
4+
5+
const eventsGet = async (req, res) => {
6+
await eventsGetQuerySchema.validateAsync(req.query, { abortEarly: false });
7+
8+
const { limit, since, wallet } = req.query;
9+
10+
const eventService = new EventService();
11+
12+
const events = await eventService.getAllEvents({
13+
limit,
14+
since,
15+
wallet,
16+
walletLoginId: req.wallet_id,
17+
});
18+
19+
res.status(200).json({ events });
20+
};
21+
22+
module.exports = { eventsGet };
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
const Joi = require('joi');
2+
3+
const eventsGetQuerySchema = Joi.object({
4+
limit: Joi.number().required(),
5+
since: Joi.date().iso(),
6+
wallet: Joi.string(),
7+
});
8+
9+
module.exports = { eventsGetQuerySchema };

server/handlers/transferHandler/index.js

Lines changed: 72 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@ const {
88
} = require('./schemas');
99

1010
const transferPost = async (req, res) => {
11-
const validatedBody = await transferPostSchema.validateAsync(req.body, { abortEarly: false });
11+
const validatedBody = await transferPostSchema.validateAsync(req.body, {
12+
abortEarly: false,
13+
});
1214
const transferService = new TransferService();
1315

14-
const {wallet_id} = req
16+
const { wallet_id } = req;
1517
const { result, status } = await transferService.initiateTransfer(
1618
validatedBody,
1719
wallet_id,
@@ -20,60 +22,66 @@ const transferPost = async (req, res) => {
2022
const modifiedTransfer = {
2123
...result,
2224
token_count:
23-
+result.parameters?.bundle?.bundleSize || +result.parameters?.tokens?.length,
24-
}
25+
+result.parameters?.bundle?.bundleSize ||
26+
+result.parameters?.tokens?.length,
27+
};
2528

2629
res.status(status).send(modifiedTransfer);
2730
};
2831

2932
const transferIdAcceptPost = async (req, res) => {
30-
const validatedParams = await transferIdParamSchema.validateAsync(req.params, { abortEarly: false });
33+
const validatedParams = await transferIdParamSchema.validateAsync(
34+
req.params,
35+
{ abortEarly: false },
36+
);
3137

32-
const {transfer_id} = validatedParams
33-
const {wallet_id} = req
38+
const { transfer_id } = validatedParams;
39+
const { wallet_id } = req;
3440
const transferService = new TransferService();
35-
const result = await transferService.acceptTransfer(
36-
transfer_id,
37-
wallet_id,
38-
);
41+
const result = await transferService.acceptTransfer(transfer_id, wallet_id);
3942

4043
res.json(result);
4144
};
4245

4346
const transferIdDeclinePost = async (req, res) => {
44-
const validatedParams = await transferIdParamSchema.validateAsync(req.params, { abortEarly: false });
47+
const validatedParams = await transferIdParamSchema.validateAsync(
48+
req.params,
49+
{ abortEarly: false },
50+
);
4551

46-
const {transfer_id} = validatedParams
47-
const {wallet_id} = req
52+
const { transfer_id } = validatedParams;
53+
const { wallet_id } = req;
4854
const transferService = new TransferService();
49-
const result = await transferService.declineTransfer(
50-
transfer_id,
51-
wallet_id,
52-
);
55+
const result = await transferService.declineTransfer(transfer_id, wallet_id);
5356

5457
res.json(result);
5558
};
5659

5760
const transferIdDelete = async (req, res) => {
58-
const validatedParams = await transferIdParamSchema.validateAsync(req.params, { abortEarly: false });
61+
const validatedParams = await transferIdParamSchema.validateAsync(
62+
req.params,
63+
{ abortEarly: false },
64+
);
5965

60-
const {transfer_id} = validatedParams
61-
const {wallet_id} = req
66+
const { transfer_id } = validatedParams;
67+
const { wallet_id } = req;
6268
const transferService = new TransferService();
63-
const result = await transferService.cancelTransfer(
64-
transfer_id,
65-
wallet_id,
66-
);
69+
const result = await transferService.cancelTransfer(transfer_id, wallet_id);
6770

6871
res.json(result);
6972
};
7073

7174
const transferIdFulfill = async (req, res) => {
72-
const validatedParams = await transferIdParamSchema.validateAsync(req.params, { abortEarly: false });
73-
const validatedBody = await transferIdFulfillSchema.validateAsync(req.body, { abortEarly: false });
75+
const validatedParams = await transferIdParamSchema.validateAsync(
76+
req.params,
77+
{ abortEarly: false },
78+
);
79+
const validatedBody = await transferIdFulfillSchema.validateAsync(req.body, {
80+
abortEarly: false,
81+
});
7482

75-
const {transfer_id} = validatedParams
76-
const {wallet_id} = req
83+
const { transfer_id } = validatedParams;
84+
const { wallet_id } = req;
7785
const transferService = new TransferService();
7886
const result = await transferService.fulfillTransfer(
7987
wallet_id,
@@ -84,53 +92,69 @@ const transferIdFulfill = async (req, res) => {
8492
};
8593

8694
const transferGet = async (req, res) => {
87-
const validatedQuery = await transferGetQuerySchema.validateAsync(req.query, { abortEarly: false });
95+
const validatedQuery = await transferGetQuerySchema.validateAsync(req.query, {
96+
abortEarly: false,
97+
});
8898

8999
const { limit, offset, ...params } = validatedQuery;
90-
const {wallet_id} = req
100+
const { wallet_id } = req;
91101

92102
const transferService = new TransferService();
93103

94-
const {transfers, count} = await transferService.getByFilter({...params, limit, offset}, wallet_id);
104+
const { transfers, count } = await transferService.getByFilter(
105+
{ ...params, limit, offset },
106+
wallet_id,
107+
);
95108

96109
const modifiedTransfers = transfers.map((t) => ({
97110
...t,
98111
token_count:
99112
+t.parameters?.bundle?.bundleSize || +t.parameters?.tokens?.length,
100113
}));
101114

102-
res.status(200).json({ transfers: modifiedTransfers, query: {...params, limit, offset}, total:count });
115+
res.status(200).json({
116+
transfers: modifiedTransfers,
117+
query: { ...params, limit, offset },
118+
total: count,
119+
});
103120
};
104121

105122
const transferIdGet = async (req, res) => {
106-
const validatedParams = await transferIdParamSchema.validateAsync(req.params, { abortEarly: false });
123+
const validatedParams = await transferIdParamSchema.validateAsync(
124+
req.params,
125+
{ abortEarly: false },
126+
);
107127

108-
const {transfer_id} = validatedParams
109-
const {wallet_id} = req
128+
const { transfer_id } = validatedParams;
129+
const { wallet_id } = req;
110130
const transferService = new TransferService();
111-
const result = await transferService.getTransferById(
112-
transfer_id,
113-
wallet_id,
114-
);
131+
const result = await transferService.getTransferById(transfer_id, wallet_id);
115132

116133
const modifiedTransfer = {
117134
...result,
118135
token_count:
119-
+result.parameters?.bundle?.bundleSize || +result.parameters?.tokens?.length,
120-
}
136+
+result.parameters?.bundle?.bundleSize ||
137+
+result.parameters?.tokens?.length,
138+
};
121139

122140
res.json(modifiedTransfer);
123141
};
124142

125143
const transferIdTokenGet = async (req, res) => {
126-
const validatedParams = await transferIdParamSchema.validateAsync(req.params, { abortEarly: false });
127-
const validatedQuery = await transferLimitOffsetQuerySchema.validateAsync(req.query, {
128-
abortEarly: false,
129-
});
144+
const validatedParams = await transferIdParamSchema.validateAsync(
145+
req.params,
146+
{ abortEarly: false },
147+
);
148+
const validatedQuery = await transferLimitOffsetQuerySchema.validateAsync(
149+
req.query,
150+
{
151+
abortEarly: false,
152+
},
153+
);
130154

131155
const { limit, offset } = validatedQuery;
132-
const {transfer_id} = validatedParams
133-
const {wallet_id} = req
156+
const { transfer_id } = validatedParams;
157+
const { wallet_id } = req;
134158
const transferService = new TransferService();
135159
const tokens = await transferService.getTokensByTransferId(
136160
transfer_id,

0 commit comments

Comments
 (0)