Advertisement
Guest User

Untitled

a guest
Sep 1st, 2017
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. export class DatabaseProvider {
  2. database: SQLiteObject;
  3. private databaseReady: BehaviorSubject<boolean>;
  4.  
  5. constructor(public sqlitePorter: SQLitePorter, private storage: Storage, private sqlite: SQLite, private platform: Platform, private http: Http) {
  6. this.databaseReady = new BehaviorSubject(false);
  7. this.platform.ready().then(() => {
  8. this.sqlite.create({
  9. name: 'microblog.db',
  10. location: 'default'
  11. })
  12. .then((db: SQLiteObject) => {
  13. this.database = db;
  14. this.storage.get('database_filled').then(val => {
  15. if (val) {
  16. this.databaseReady.next(true);
  17. } else {
  18. this.fillDatabase();
  19. }
  20. });
  21. });
  22. });
  23. }
  24.  
  25. fillDatabase() {
  26. this.http.get('assets/dump.sql')
  27. .map(res => res.text())
  28. .subscribe(sql => {
  29. this.sqlitePorter.importSqlToDb(this.database, sql)
  30. .then(data => {
  31. this.databaseReady.next(true);
  32. this.storage.set('database_filled', true);
  33. })
  34. .catch(e => console.error(e));
  35. });
  36. }
  37.  
  38. addUser(username, password, first_name, last_name, email) {
  39. let data = [username, password, first_name, last_name, email]
  40. return this.database.executeSql("INSERT INTO user (username, password, first_name, last_name, email) VALUES (?, ?, ?, ?, ?)", data).then(data => {
  41. return data;
  42. }, err => {
  43. console.log('Error: ', err);
  44. return err;
  45. });
  46. }
  47.  
  48. getAllUsers() {
  49. return this.database.executeSql("SELECT * FROM user", []).then((data) => {
  50. let users = [];
  51. if (data.rows.length > 0) {
  52. for (var i = 0; i < data.rows.length; i++) {
  53. 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 });
  54. }
  55. }
  56. return users;
  57. }, err => {
  58. console.log('Error: ', err);
  59. return [];
  60. });
  61. }
  62.  
  63. getDatabaseState() {
  64. return this.databaseReady.asObservable();
  65. }
  66.  
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement