Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- export class DatabaseProvider {
- database: SQLiteObject;
- private databaseReady: BehaviorSubject<boolean>;
- constructor(public sqlitePorter: SQLitePorter, private storage: Storage, private sqlite: SQLite, private platform: Platform, private http: Http) {
- this.databaseReady = new BehaviorSubject(false);
- this.platform.ready().then(() => {
- this.sqlite.create({
- name: 'microblog.db',
- location: 'default'
- })
- .then((db: SQLiteObject) => {
- this.database = db;
- this.storage.get('database_filled').then(val => {
- if (val) {
- this.databaseReady.next(true);
- } else {
- this.fillDatabase();
- }
- });
- });
- });
- }
- fillDatabase() {
- this.http.get('assets/dump.sql')
- .map(res => res.text())
- .subscribe(sql => {
- this.sqlitePorter.importSqlToDb(this.database, sql)
- .then(data => {
- this.databaseReady.next(true);
- this.storage.set('database_filled', true);
- })
- .catch(e => console.error(e));
- });
- }
- addUser(username, password, first_name, last_name, email) {
- let data = [username, password, first_name, last_name, email]
- return this.database.executeSql("INSERT INTO user (username, password, first_name, last_name, email) VALUES (?, ?, ?, ?, ?)", data).then(data => {
- return data;
- }, err => {
- console.log('Error: ', err);
- return err;
- });
- }
- getAllUsers() {
- return this.database.executeSql("SELECT * FROM user", []).then((data) => {
- let users = [];
- if (data.rows.length > 0) {
- for (var i = 0; i < data.rows.length; i++) {
- users.push({ user_id: data.rows.item(i).user_id, username: data.rows.item(i).username, password: data.rows.item(i).password, first_name: data.rows.item(i).first_name, last_name: data.rows.item(i).last_name, email: data.rows.item(i).email, created: data.rows.item(i).created });
- }
- }
- return users;
- }, err => {
- console.log('Error: ', err);
- return [];
- });
- }
- getDatabaseState() {
- return this.databaseReady.asObservable();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement