@chevre/domain
Version:
Chevre Domain Library for Node.js
58 lines (52 loc) • 2.19 kB
text/typescript
// 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);