59 lines
1.2 KiB
JavaScript
59 lines
1.2 KiB
JavaScript
const couchdb = require("../../../../db");
|
|
|
|
const CLIENT_DB_ID = "client-testing";
|
|
|
|
exports.destroyDatabase = couchdb.db.destroy;
|
|
|
|
exports.createModel = async instanceId => {
|
|
const model = {
|
|
"name": "TestModel",
|
|
"type": "model",
|
|
"key": "name",
|
|
"fields": [
|
|
{
|
|
"name": "name",
|
|
"type": "string"
|
|
}
|
|
]
|
|
}
|
|
const response = await couchdb.db.use(instanceId).insert(model);
|
|
return {
|
|
...response,
|
|
...model
|
|
};
|
|
}
|
|
|
|
exports.createClientDatabase = async () => {
|
|
await couchdb.db.create(CLIENT_DB_ID);
|
|
|
|
await couchdb.db.use(CLIENT_DB_ID).insert({
|
|
views: {
|
|
by_type: {
|
|
map: function(doc) {
|
|
emit([doc.type], doc._id);
|
|
}
|
|
}
|
|
}
|
|
}, '_design/client');
|
|
}
|
|
|
|
exports.createInstanceDatabase = async instanceId => {
|
|
await couchdb.db.create(instanceId);
|
|
|
|
await couchdb.db.use(instanceId).insert({
|
|
views: {
|
|
by_type: {
|
|
map: function(doc) {
|
|
emit([doc.type], doc._id);
|
|
}
|
|
}
|
|
}
|
|
}, '_design/database');
|
|
|
|
return instanceId;
|
|
}
|
|
|
|
exports.insertDocument = async (databaseId, document) => {
|
|
const { id, ...documentFields } = document;
|
|
await couchdb.db.use(databaseId).insert(documentFields, id);
|
|
} |