UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

58 lines (52 loc) 2.19 kB
// tslint:disable:no-console import * as mongoose from 'mongoose'; import * as redis from 'redis'; import { chevre } from '../../../../lib/index'; const project = { id: String(process.env.PROJECT_ID) }; const CLIENT_ID = 'xxx'; // tslint:disable-next-line:max-func-body-length async function main() { await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false }); const client = redis.createClient<redis.RedisDefaultModules, Record<string, never>, Record<string, never>>({ socket: { port: Number(<string>process.env.REDIS_PORT), host: <string>process.env.REDIS_HOST }, password: <string>process.env.REDIS_KEY }); await client.connect(); const transaction = await (await chevre.service.transaction.createService()).placeOrder.start( { project: { id: project.id, typeOf: chevre.factory.organizationType.Project }, agent: { id: CLIENT_ID, typeOf: chevre.factory.creativeWorkType.WebApplication }, object: { clientUser: <any>{ client_id: CLIENT_ID }, passport: { token: 'xxx' } }, seller: { id: '622ea934a42374000a1f9114' } }, { lockPassport: true } )({ issuer: await chevre.repository.Issuer.createInstance(mongoose.connection), member: await chevre.repository.Member.createInstance(mongoose.connection), memberProgram: await chevre.repository.MemberProgram.createInstance(mongoose.connection), passport: await chevre.repository.Passport.createInstance( client, { secret: 'xxx', issuers: ['https://example.com'] } ), projectMakesOffer: await chevre.repository.ProjectMakesOffer.createInstance(mongoose.connection), seller: await chevre.repository.Seller.createInstance(mongoose.connection), transaction: await chevre.repository.Transaction.createInstance(mongoose.connection) }); console.log('transaction started', transaction); } main() .then(console.log) .catch(console.error);