smartdata/ts/smartdata.classes.db.ts

34 lines
933 B
TypeScript
Raw Normal View History

2016-09-11 16:01:46 +00:00
import * as plugins from './smartdata.plugins'
2016-09-12 21:47:57 +00:00
export type TConnectionStatus = 'disconnected' | 'connected' | 'failed'
2016-09-11 16:01:46 +00:00
2016-09-12 21:47:57 +00:00
export class Db {
2016-09-11 16:01:46 +00:00
dbUrl: string
db: plugins.mongodb.Db
2016-09-12 21:47:57 +00:00
status: TConnectionStatus
2016-09-11 16:01:46 +00:00
constructor(dbUrl: string) {
this.dbUrl = dbUrl
}
connect(): plugins.q.Promise<any> {
let done = plugins.q.defer()
plugins.mongodb.MongoClient.connect(this.dbUrl, (err, db) => {
if (err) { console.log(err) }
plugins.assert.equal(null, err)
this.db = db
plugins.beautylog.success(`connected to database at ${this.dbUrl}`)
done.resolve(this.db)
})
return done.promise
}
close(): plugins.q.Promise<any> {
let done = plugins.q.defer()
this.db.close()
plugins.beautylog.ok(`disconnected to database at ${this.dbUrl}`)
done.resolve()
return done.promise
}
}