4
4
"fmt"
5
5
)
6
6
7
- type CredentialExchange struct {
7
+ type CredentialExchangeRecord struct {
8
8
CredentialExchangeID string `json:"credential_exchange_id"`
9
9
CredentialDefinitionID string `json:"credential_definition_id"`
10
10
ConnectionID string `json:"connection_id"`
@@ -119,44 +119,90 @@ type CredentialPreviewAttribute struct {
119
119
Value string `json:"value"`
120
120
}
121
121
122
- type CredentialOfferRequest struct {
123
- CredentialDefinitionID string `json:"cred_def_id"`
124
- ConnectionID string `json:"connection_id"`
125
- CredentialPreview CredentialPreview `json:"credential_preview"`
126
- Comment string `json:"comment"`
127
- Trace bool `json:"trace"`
128
- AutoRemove bool `json:"auto_remove"`
129
- AutoIssue bool `json:"auto_issue"`
130
- }
131
-
132
- type CredentialProposalRequest struct {
122
+ type credentialProposalRequest struct {
133
123
CredentialDefinitionID string `json:"cred_def_id"`
134
124
ConnectionID string `json:"connection_id"`
135
125
IssuerDID string `json:"issuer_did"`
136
126
Comment string `json:"comment"`
137
127
CredentialPreview CredentialPreview `json:"credential_proposal"`
138
- SchemaName string `json:"schema_name"`
139
- SchemaVersion string `json:"schema_version"`
140
128
SchemaID string `json:"schema_id"`
141
- SchemaIssuerDID string `json:"schema_issuer_did"`
142
- Trace bool `json:"trace"`
143
- AutoRemove bool `json:"auto_remove"`
129
+
130
+ // filled automatically
131
+ SchemaName string `json:"schema_name"`
132
+ SchemaVersion string `json:"schema_version"`
133
+ SchemaIssuerDID string `json:"schema_issuer_did"`
134
+ Trace bool `json:"trace"`
135
+ AutoRemove bool `json:"auto_remove"`
144
136
}
145
137
146
- func (c * Client ) SendCredentialProposal (proposal CredentialProposalRequest ) (CredentialExchange , error ) {
147
- var credentialExchange CredentialExchange
148
- err := c .post ("/issue-credential/send-proposal" , nil , proposal , & credentialExchange )
138
+ func (c * Client ) SendCredentialProposal (
139
+ credentialDefinitionID string ,
140
+ connectionID string ,
141
+ issuerDID string ,
142
+ comment string ,
143
+ credentialPreview CredentialPreview ,
144
+ schemaID string ,
145
+ ) (CredentialExchangeRecord , error ) {
146
+
147
+ var response CredentialExchangeRecord
148
+ var schemaIssuerDID , _ , schemaName , schemaVersion , err = SchemaIDToParts (schemaID )
149
149
if err != nil {
150
- return CredentialExchange {}, err
150
+ return CredentialExchangeRecord {}, err
151
151
}
152
- return credentialExchange , nil
152
+
153
+ var request = credentialProposalRequest {
154
+ CredentialDefinitionID : credentialDefinitionID ,
155
+ ConnectionID : connectionID ,
156
+ IssuerDID : issuerDID ,
157
+ Comment : comment ,
158
+ CredentialPreview : credentialPreview ,
159
+ SchemaID : schemaID ,
160
+
161
+ SchemaName : schemaName ,
162
+ SchemaVersion : schemaVersion ,
163
+ SchemaIssuerDID : schemaIssuerDID ,
164
+ Trace : c .tracing ,
165
+ AutoRemove : ! c .preserveExchangeRecords ,
166
+ }
167
+
168
+ err = c .post ("/issue-credential/send-proposal" , nil , request , & response )
169
+ if err != nil {
170
+ return CredentialExchangeRecord {}, err
171
+ }
172
+ return response , nil
153
173
}
154
174
155
- func (c * Client ) SendCredentialOffer (offer CredentialOfferRequest ) (CredentialExchange , error ) {
156
- var credentialExchangeRecord CredentialExchange
175
+ type credentialOfferRequest struct {
176
+ CredentialDefinitionID string `json:"cred_def_id"`
177
+ ConnectionID string `json:"connection_id"`
178
+ CredentialPreview CredentialPreview `json:"credential_preview"`
179
+ Comment string `json:"comment"`
180
+
181
+ // filled automatically
182
+ Trace bool `json:"trace"`
183
+ AutoRemove bool `json:"auto_remove"`
184
+ AutoIssue bool `json:"auto_issue"`
185
+ }
186
+
187
+ func (c * Client ) SendCredentialOffer (
188
+ credentialDefinitionID string ,
189
+ connectionID string ,
190
+ credentialPreview CredentialPreview ,
191
+ comment string ,
192
+ ) (CredentialExchangeRecord , error ) {
193
+ var offer = credentialOfferRequest {
194
+ CredentialDefinitionID : credentialDefinitionID ,
195
+ ConnectionID : connectionID ,
196
+ CredentialPreview : credentialPreview ,
197
+ Comment : comment ,
198
+ Trace : c .tracing ,
199
+ AutoRemove : ! c .preserveExchangeRecords ,
200
+ AutoIssue : c .autoRespondCredentialOffer ,
201
+ }
202
+ var credentialExchangeRecord CredentialExchangeRecord
157
203
err := c .post ("/issue-credential/send-offer" , nil , offer , & credentialExchangeRecord )
158
204
if err != nil {
159
- return CredentialExchange {}, err
205
+ return CredentialExchangeRecord {}, err
160
206
}
161
207
return credentialExchangeRecord , nil
162
208
}
@@ -168,9 +214,9 @@ type QueryCredentialExchangeParams struct {
168
214
ThreadID string `json:"thread_id"`
169
215
}
170
216
171
- func (c * Client ) QueryCredentialExchange (params QueryCredentialExchangeParams ) ([]CredentialExchange , error ) {
217
+ func (c * Client ) QueryCredentialExchange (params QueryCredentialExchangeParams ) ([]CredentialExchangeRecord , error ) {
172
218
var result = struct {
173
- Results []CredentialExchange `json:"result"`
219
+ Results []CredentialExchangeRecord `json:"result"`
174
220
}{}
175
221
var queryParams = map [string ]string {
176
222
"connection_id" : params .ConnectionID ,
@@ -185,11 +231,11 @@ func (c *Client) QueryCredentialExchange(params QueryCredentialExchangeParams) (
185
231
return result .Results , nil
186
232
}
187
233
188
- func (c * Client ) GetCredentialExchange (credentialExchangeID string ) (CredentialExchange , error ) {
189
- var credentialExchange CredentialExchange
234
+ func (c * Client ) GetCredentialExchange (credentialExchangeID string ) (CredentialExchangeRecord , error ) {
235
+ var credentialExchange CredentialExchangeRecord
190
236
err := c .get (fmt .Sprintf ("/issue-credential/records/%s" , credentialExchangeID ), nil , & credentialExchange )
191
237
if err != nil {
192
- return CredentialExchange {}, err
238
+ return CredentialExchangeRecord {}, err
193
239
}
194
240
return credentialExchange , nil
195
241
}
@@ -207,69 +253,110 @@ type CredentialCreateRequest struct {
207
253
AutoRemove bool `json:"auto_remove"`
208
254
}
209
255
210
- func (c * Client ) CreateCredentialExchange (request CredentialCreateRequest ) (CredentialExchange , error ) {
211
- var credentialExchange CredentialExchange
256
+ func (c * Client ) CreateCredentialExchange (request CredentialCreateRequest ) (CredentialExchangeRecord , error ) {
257
+ var credentialExchange CredentialExchangeRecord
212
258
err := c .post ("/issue-credential/create" , nil , request , & credentialExchange )
213
259
if err != nil {
214
- return CredentialExchange {}, err
260
+ return CredentialExchangeRecord {}, err
215
261
}
216
262
return credentialExchange , nil
217
263
}
218
264
219
- type CredentialSendRequest CredentialProposalRequest
265
+ type credentialSendRequest struct {
266
+ CredentialDefinitionID string `json:"cred_def_id"`
267
+ ConnectionID string `json:"connection_id"`
268
+ IssuerDID string `json:"issuer_did"`
269
+ Comment string `json:"comment"`
270
+ CredentialPreview CredentialPreview `json:"credential_proposal"`
271
+ SchemaID string `json:"schema_id"`
272
+
273
+ // filled automatically
274
+ SchemaName string `json:"schema_name"`
275
+ SchemaVersion string `json:"schema_version"`
276
+ SchemaIssuerDID string `json:"schema_issuer_did"`
277
+ Trace bool `json:"trace"`
278
+ AutoRemove bool `json:"auto_remove"`
279
+ }
280
+
281
+ func (c * Client ) SendCredential (credentialDefinitionID string ,
282
+ connectionID string ,
283
+ issuerDID string ,
284
+ comment string ,
285
+ credentialPreview CredentialPreview ,
286
+ schemaID string ,
287
+ ) (CredentialExchangeRecord , error ) {
288
+
289
+ var credentialExchange CredentialExchangeRecord
290
+ var schemaIssuerDID , _ , schemaName , schemaVersion , err = SchemaIDToParts (schemaID )
291
+ if err != nil {
292
+ return CredentialExchangeRecord {}, err
293
+ }
294
+
295
+ var request = credentialSendRequest {
296
+ CredentialDefinitionID : credentialDefinitionID ,
297
+ ConnectionID : connectionID ,
298
+ IssuerDID : issuerDID ,
299
+ Comment : comment ,
300
+ CredentialPreview : credentialPreview ,
301
+ SchemaID : schemaID ,
302
+
303
+ SchemaName : schemaName ,
304
+ SchemaVersion : schemaVersion ,
305
+ SchemaIssuerDID : schemaIssuerDID ,
306
+ Trace : c .tracing ,
307
+ AutoRemove : ! c .preserveExchangeRecords ,
308
+ }
220
309
221
- func (c * Client ) SendCredential (request CredentialSendRequest ) (CredentialExchange , error ) {
222
- var credentialExchange CredentialExchange
223
- err := c .post ("/issue-credential/send" , nil , request , & credentialExchange )
310
+ err = c .post ("/issue-credential/send" , nil , request , & credentialExchange )
224
311
if err != nil {
225
- return CredentialExchange {}, err
312
+ return CredentialExchangeRecord {}, err
226
313
}
227
314
return credentialExchange , nil
228
315
}
229
316
230
- func (c * Client ) SendCredentialOfferByID (credentialExchangeID string ) (CredentialExchange , error ) {
231
- var credentialExchange CredentialExchange
317
+ func (c * Client ) SendCredentialOfferByID (credentialExchangeID string ) (CredentialExchangeRecord , error ) {
318
+ var credentialExchange CredentialExchangeRecord
232
319
err := c .post (fmt .Sprintf ("/issue-credential/records/%s/send-offer" , credentialExchangeID ), nil , nil , & credentialExchange )
233
320
if err != nil {
234
- return CredentialExchange {}, err
321
+ return CredentialExchangeRecord {}, err
235
322
}
236
323
return credentialExchange , nil
237
324
}
238
325
239
- func (c * Client ) SendCredentialRequestByID (credentialExchangeID string ) (CredentialExchange , error ) {
240
- var credentialExchange CredentialExchange
326
+ func (c * Client ) SendCredentialRequestByID (credentialExchangeID string ) (CredentialExchangeRecord , error ) {
327
+ var credentialExchange CredentialExchangeRecord
241
328
err := c .post (fmt .Sprintf ("/issue-credential/records/%s/send-request" , credentialExchangeID ), nil , nil , & credentialExchange )
242
329
if err != nil {
243
- return CredentialExchange {}, err
330
+ return CredentialExchangeRecord {}, err
244
331
}
245
332
return credentialExchange , nil
246
333
}
247
334
248
- func (c * Client ) IssueCredentialByID (credentialExchangeID string , comment string ) (CredentialExchange , error ) {
249
- var credentialExchange CredentialExchange
335
+ func (c * Client ) IssueCredentialByID (credentialExchangeID string , comment string ) (CredentialExchangeRecord , error ) {
336
+ var credentialExchange CredentialExchangeRecord
250
337
var body = struct {
251
338
Comment string `json:"comment"`
252
339
}{
253
340
Comment : comment ,
254
341
}
255
342
err := c .post (fmt .Sprintf ("/issue-credential/records/%s/issue" , credentialExchangeID ), nil , body , & credentialExchange )
256
343
if err != nil {
257
- return CredentialExchange {}, err
344
+ return CredentialExchangeRecord {}, err
258
345
}
259
346
return credentialExchange , nil
260
347
}
261
348
262
349
// credentialID is optional: https://github.com/hyperledger/aries-cloudagent-python/issues/594#issuecomment-656113125
263
- func (c * Client ) StoreCredentialByID (credentialExchangeID string , credentialID string ) (CredentialExchange , error ) {
264
- var credentialExchange CredentialExchange
350
+ func (c * Client ) StoreCredentialByID (credentialExchangeID string , credentialID string ) (CredentialExchangeRecord , error ) {
351
+ var credentialExchange CredentialExchangeRecord
265
352
var body = struct {
266
353
CredentialID string `json:"credential_id"`
267
354
}{
268
355
CredentialID : credentialID ,
269
356
}
270
357
err := c .post (fmt .Sprintf ("/issue-credential/records/%s/store" , credentialExchangeID ), nil , body , & credentialExchange )
271
358
if err != nil {
272
- return CredentialExchange {}, err
359
+ return CredentialExchangeRecord {}, err
273
360
}
274
361
return credentialExchange , nil
275
362
}
0 commit comments