dbl-coins-invest
Version:
Sharade DBL package over other coins invest services
80 lines (65 loc) • 2.14 kB
JavaScript
import { Investment, Portfolio, User, Account } from "../mysqldb/models";
import { Observable } from 'rxjs/Observable'
import { NotificationModel } from './schemas/notifications.schema';
const callback = (observer, error, response) => {
if (!!error) {
observer.error(response);
} else {
observer.next(response);
}
observer.complete();
};
export default class AlertsService {
constructor(userSub) {
if (!userSub)
throw new Error('userSub have to be provided!!!!');
this.userSub = userSub;
this.model = Account;
}
getAll() {
return Observable.create((observer) => {
NotificationModel.scan('userSub').eq(this.userSub)
.exec(callback.bind(null, observer))
})
}
create(data) {
return Observable.create((observer) => {
NotificationModel.create(data, callback.bind(null, observer))
})
}
getById(alertId) {
return Observable.create((observer) => {
NotificationModel.get({id: alertId, userSub: this.userSub}, callback.bind(null, observer))
})
}
getByType(type) {
return Observable.create((observer) => {
NotificationModel
.query('type')
.eq(type)
.where('userSub')
.eq(this.userSub)
.exec(callback.bind(null, observer))
})
}
update(...args) {
return Observable.create((observer) => {
NotificationModel.update.call(NotificationModel, ...args, callback.bind(null, observer))
})
}
delete(object) {
return Observable.create((observer) => {
NotificationModel.delete(object, callback.bind(null, observer))
})
}
batchDelete(objects) {
return Observable.create((observer) => {
NotificationModel.batchDelete(objects, callback.bind(null, observer))
})
}
batchPut(data) {
return Observable.create((observer) => {
NotificationModel.batchPut(data, callback.bind(null, observer));
})
}
}