Skip to content

Commit 3450150

Browse files
committed
feat: add wallet and index-wallet models
1 parent 0d05aa2 commit 3450150

File tree

194 files changed

+5626
-208
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

194 files changed

+5626
-208
lines changed

api-schema.graphql

+98-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ type IndexEntry {
9595
label: String
9696
program: String!
9797
updatedAt: DateTime
98-
wallet: String!
98+
walletId: String!
9999
}
100100

101101
input IndexEntryAdminFindManyInput {
@@ -137,6 +137,43 @@ input IndexUserFindManyInput {
137137
type: IndexType
138138
}
139139

140+
type IndexWallet {
141+
createdAt: DateTime
142+
id: String!
143+
index: Index
144+
indexId: String!
145+
updatedAt: DateTime
146+
wallet: Wallet
147+
walletId: String!
148+
}
149+
150+
input IndexWalletAdminFindManyInput {
151+
limit: Int = 10
152+
page: Int = 1
153+
search: String
154+
walletId: String!
155+
}
156+
157+
input IndexWalletAdminUpdateInput {
158+
updatedAt: String
159+
}
160+
161+
type IndexWalletPaging {
162+
data: [IndexWallet!]!
163+
meta: PagingMeta!
164+
}
165+
166+
input IndexWalletUserFindManyInput {
167+
limit: Int = 10
168+
page: Int = 1
169+
search: String
170+
walletId: String!
171+
}
172+
173+
input IndexWalletUserUpdateInput {
174+
updatedAt: String
175+
}
176+
140177
"""
141178
The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).
142179
"""
@@ -151,17 +188,27 @@ type Mutation {
151188
adminCreateIdentity(input: IdentityAdminCreateInput!): Identity
152189
adminCreateIndex(input: IndexAdminCreateInput!): Index
153190
adminCreateUser(input: UserAdminCreateInput!): User
191+
adminCreateWallet(input: WalletAdminCreateInput!): Wallet
154192
adminDeleteIdentity(identityId: String!): Boolean
155193
adminDeleteIndex(indexId: String!): Boolean
156194
adminDeleteIndexEntry(indexEntryId: String!): Boolean
195+
adminDeleteIndexWallet(indexWalletId: String!): Boolean
157196
adminDeleteUser(userId: String!): Boolean
197+
adminDeleteWallet(walletId: String!): Boolean
158198
adminUpdateIndex(indexId: String!, input: IndexAdminUpdateInput!): Index
199+
adminUpdateIndexWallet(indexWalletId: String!, input: IndexWalletAdminUpdateInput!): IndexWallet
159200
adminUpdateUser(input: UserAdminUpdateInput!, userId: String!): User
201+
adminUpdateWallet(input: WalletAdminUpdateInput!, walletId: String!): Wallet
160202
login(input: LoginInput!): User
161203
logout: Boolean
162204
register(input: RegisterInput!): User
205+
userCreateWallet(input: WalletUserCreateInput!): Wallet
163206
userDeleteIdentity(identityId: String!): Boolean
207+
userDeleteIndexWallet(indexWalletId: String!): Boolean
208+
userDeleteWallet(walletId: String!): Boolean
209+
userUpdateIndexWallet(indexWalletId: String!, input: IndexWalletUserUpdateInput!): IndexWallet
164210
userUpdateUser(input: UserUserUpdateInput!): User
211+
userUpdateWallet(input: WalletUserUpdateInput!, walletId: String!): Wallet
165212
}
166213

167214
enum NetworkCluster {
@@ -185,10 +232,14 @@ type Query {
185232
adminFindManyIdentity(input: IdentityAdminFindManyInput!): [Identity!]
186233
adminFindManyIndex(input: IndexAdminFindManyInput!): IndexPaging!
187234
adminFindManyIndexEntry(input: IndexEntryAdminFindManyInput!): IndexEntryPaging!
235+
adminFindManyIndexWallet(input: IndexWalletAdminFindManyInput!): IndexWalletPaging!
188236
adminFindManyUser(input: UserAdminFindManyInput!): UserPaging!
237+
adminFindManyWallet(input: WalletAdminFindManyInput!): WalletPaging!
189238
adminFindOneIndex(indexId: String!): Index
190239
adminFindOneIndexEntry(indexEntryId: String!): IndexEntry
240+
adminFindOneIndexWallet(indexWalletId: String!): IndexWallet
191241
adminFindOneUser(userId: String!): User
242+
adminFindOneWallet(walletId: String!): Wallet
192243
adminGetAccountInfo(input: IndexAdminResolveInput!): JSON
193244
adminResolveIndex(input: IndexAdminResolveInput!): JSON
194245
adminResolveWallet(input: IndexAdminResolveInput!, wallet: String!): JSON
@@ -198,10 +249,14 @@ type Query {
198249
userFindManyIdentity(input: IdentityUserFindManyInput!): [Identity!]
199250
userFindManyIndex(input: IndexUserFindManyInput!): IndexPaging!
200251
userFindManyIndexEntry(input: IndexEntryUserFindManyInput!): IndexEntryPaging!
252+
userFindManyIndexWallet(input: IndexWalletUserFindManyInput!): IndexWalletPaging!
201253
userFindManyUser(input: UserUserFindManyInput!): UserPaging!
254+
userFindManyWallet(input: WalletUserFindManyInput!): WalletPaging!
202255
userFindOneIndex(indexId: String!): Index
203256
userFindOneIndexEntry(indexEntryId: String!): IndexEntry
257+
userFindOneIndexWallet(indexWalletId: String!): IndexWallet
204258
userFindOneUser(username: String!): User
259+
userFindOneWallet(walletId: String!): Wallet
205260
}
206261

207262
input RegisterInput {
@@ -272,3 +327,45 @@ input UserUserUpdateInput {
272327
developer: Boolean
273328
name: String
274329
}
330+
331+
type Wallet {
332+
createdAt: DateTime
333+
id: String!
334+
label: String!
335+
updatedAt: DateTime
336+
}
337+
338+
input WalletAdminCreateInput {
339+
id: String!
340+
label: String
341+
}
342+
343+
input WalletAdminFindManyInput {
344+
limit: Int = 10
345+
page: Int = 1
346+
search: String
347+
}
348+
349+
input WalletAdminUpdateInput {
350+
label: String
351+
}
352+
353+
type WalletPaging {
354+
data: [Wallet!]!
355+
meta: PagingMeta!
356+
}
357+
358+
input WalletUserCreateInput {
359+
id: String!
360+
label: String
361+
}
362+
363+
input WalletUserFindManyInput {
364+
limit: Int = 10
365+
page: Int = 1
366+
search: String
367+
}
368+
369+
input WalletUserUpdateInput {
370+
label: String
371+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
import {
2+
IndexWalletAdminCreateInput,
3+
IndexWalletAdminFindManyInput,
4+
IndexWalletAdminUpdateInput,
5+
IndexWallet,
6+
} from '@pubkey-resolver/sdk'
7+
import { getAliceCookie, getBobCookie, sdk, uniqueId } from '../support'
8+
9+
describe('api-index-wallet-feature', () => {
10+
describe('api-index-wallet-admin-resolver', () => {
11+
const indexWalletName = uniqueId('acme-index-wallet')
12+
13+
let indexWalletId: string
14+
let cookie: string
15+
16+
beforeAll(async () => {
17+
cookie = await getAliceCookie()
18+
const created = await sdk.adminCreateIndexWallet({ input: { name: indexWalletName } }, { cookie })
19+
indexWalletId = created.data.created.id
20+
})
21+
22+
describe('authorized', () => {
23+
beforeAll(async () => {
24+
cookie = await getAliceCookie()
25+
})
26+
27+
it('should create a index-wallet', async () => {
28+
const input: IndexWalletAdminCreateInput = {
29+
name: uniqueId('index-wallet'),
30+
}
31+
32+
const res = await sdk.adminCreateIndexWallet({ input }, { cookie })
33+
34+
const item: IndexWallet = res.data.created
35+
expect(item.name).toBe(input.name)
36+
expect(item.id).toBeDefined()
37+
expect(item.createdAt).toBeDefined()
38+
expect(item.updatedAt).toBeDefined()
39+
})
40+
41+
it('should update a index-wallet', async () => {
42+
const createInput: IndexWalletAdminCreateInput = {
43+
name: uniqueId('index-wallet'),
44+
}
45+
const createdRes = await sdk.adminCreateIndexWallet({ input: createInput }, { cookie })
46+
const indexWalletId = createdRes.data.created.id
47+
const input: IndexWalletAdminUpdateInput = {
48+
name: uniqueId('index-wallet'),
49+
}
50+
51+
const res = await sdk.adminUpdateIndexWallet({ indexWalletId, input }, { cookie })
52+
53+
const item: IndexWallet = res.data.updated
54+
expect(item.name).toBe(input.name)
55+
})
56+
57+
it('should find a list of indexWallets (find all)', async () => {
58+
const createInput: IndexWalletAdminCreateInput = {
59+
name: uniqueId('index-wallet'),
60+
}
61+
const createdRes = await sdk.adminCreateIndexWallet({ input: createInput }, { cookie })
62+
const indexWalletId = createdRes.data.created.id
63+
64+
const input: IndexWalletAdminFindManyInput = {}
65+
66+
const res = await sdk.adminFindManyIndexWallet({ input }, { cookie })
67+
68+
expect(res.data.paging.meta.totalCount).toBeGreaterThan(1)
69+
expect(res.data.paging.data.length).toBeGreaterThan(1)
70+
// First item should be the one we created above
71+
expect(res.data.paging.data[0].id).toBe(indexWalletId)
72+
})
73+
74+
it('should find a list of indexWallets (find new one)', async () => {
75+
const createInput: IndexWalletAdminCreateInput = {
76+
name: uniqueId('index-wallet'),
77+
}
78+
const createdRes = await sdk.adminCreateIndexWallet({ input: createInput }, { cookie })
79+
const indexWalletId = createdRes.data.created.id
80+
81+
const input: IndexWalletAdminFindManyInput = {
82+
search: indexWalletId,
83+
}
84+
85+
const res = await sdk.adminFindManyIndexWallet({ input }, { cookie })
86+
87+
expect(res.data.paging.meta.totalCount).toBe(1)
88+
expect(res.data.paging.data.length).toBe(1)
89+
expect(res.data.paging.data[0].id).toBe(indexWalletId)
90+
})
91+
92+
it('should find a index-wallet by id', async () => {
93+
const createInput: IndexWalletAdminCreateInput = {
94+
name: uniqueId('index-wallet'),
95+
}
96+
const createdRes = await sdk.adminCreateIndexWallet({ input: createInput }, { cookie })
97+
const indexWalletId = createdRes.data.created.id
98+
99+
const res = await sdk.adminFindOneIndexWallet({ indexWalletId }, { cookie })
100+
101+
expect(res.data.item.id).toBe(indexWalletId)
102+
})
103+
104+
it('should delete a index-wallet', async () => {
105+
const createInput: IndexWalletAdminCreateInput = {
106+
name: uniqueId('index-wallet'),
107+
}
108+
const createdRes = await sdk.adminCreateIndexWallet({ input: createInput }, { cookie })
109+
const indexWalletId = createdRes.data.created.id
110+
111+
const res = await sdk.adminDeleteIndexWallet({ indexWalletId }, { cookie })
112+
113+
expect(res.data.deleted).toBe(true)
114+
115+
const findRes = await sdk.adminFindManyIndexWallet({ input: { search: indexWalletId } }, { cookie })
116+
expect(findRes.data.paging.meta.totalCount).toBe(0)
117+
expect(findRes.data.paging.data.length).toBe(0)
118+
})
119+
})
120+
121+
describe('unauthorized', () => {
122+
let cookie: string
123+
beforeAll(async () => {
124+
cookie = await getBobCookie()
125+
})
126+
127+
it('should not update a index-wallet', async () => {
128+
expect.assertions(1)
129+
try {
130+
await sdk.adminUpdateIndexWallet({ indexWalletId, input: {} }, { cookie })
131+
} catch (e) {
132+
expect(e.message).toBe('Unauthorized: User is not Admin')
133+
}
134+
})
135+
136+
it('should not find a index-wallet by id', async () => {
137+
expect.assertions(1)
138+
try {
139+
await sdk.adminFindOneIndexWallet({ indexWalletId }, { cookie })
140+
} catch (e) {
141+
expect(e.message).toBe('Unauthorized: User is not Admin')
142+
}
143+
})
144+
145+
it('should not delete a index-wallet', async () => {
146+
expect.assertions(1)
147+
try {
148+
await sdk.adminDeleteIndexWallet({ indexWalletId }, { cookie })
149+
} catch (e) {
150+
expect(e.message).toBe('Unauthorized: User is not Admin')
151+
}
152+
})
153+
})
154+
})
155+
})

0 commit comments

Comments
 (0)