Advertisement
Guest User

Untitled

a guest
Nov 26th, 2017
411
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { SessionStorage } from '../../utils/storage';
  2. import { GenericResponse } from '../../../commons/models';
  3. import { UserType } from 'commons/enums';
  4. import { User } from 'commons/models';
  5. import { Injectable } from '@angular/core';
  6. import * as DataStore from 'nedb';
  7. import { Observable } from 'rxjs/Observable';
  8. import { AccountService } from 'services/account-service/account.service';
  9.  
  10. @Injectable()
  11. export class AccountMockService extends AccountService {
  12.  
  13.     @SessionStorage
  14.     public session: any;
  15.  
  16.     // store the URL so we can redirect after logging in
  17.     redirectUrl: string;
  18.     protected db;
  19.  
  20.     constructor() {
  21.  
  22.         super();
  23.        
  24.         this.db = new DataStore({
  25.             filename: "users.db",
  26.             autoload: true,
  27.             onload: (err) => {
  28.                 this.initData();
  29.             }
  30.         });
  31.  
  32.     }
  33.  
  34.     private initData() {
  35.  
  36.         this.db.find({}, (err, docs) => {
  37.             if (docs && docs.length == 0) {
  38.  
  39.                 var user = new User();
  40.                 user.username = 'admin@fr.com';
  41.                 user.email = 'admin@fr.com';
  42.                 user.password = 'admin'
  43.                 user.token = 'dgfdf4544345knk435';
  44.                 user.referent.name = 'Facile';
  45.                 user.referent.surname = 'Immobiliare';
  46.                 user.userType = UserType[UserType.administrator];
  47.  
  48.                 this.db.insert(user, function (err, doc) {
  49.                     console.log("Inserito utente mock");
  50.                 });
  51.             }
  52.         });
  53.     }
  54.  
  55.     login(user: User): Observable<GenericResponse<User>> {
  56.  
  57.         return new Observable(observer => {
  58.  
  59.             this.db.find({ username: user.username, password: user.password }, (err, docs) => {
  60.                 console.log("login: ", docs);
  61.                 if (docs) {
  62.                     this.session = docs[0];
  63.                     observer.next(docs[0]);
  64.                     observer.complete();
  65.                 }
  66.                 else {
  67.                     observer.error("Autenticazione fallita");
  68.                 }
  69.             });
  70.         });
  71.  
  72.     }
  73.  
  74.     getUser(id: string): Observable<User> {
  75.  
  76.         return new Observable(observer => {
  77.             this.db.find({ _id: id }, function (err, docs) {
  78.                 observer.next(docs[0]);
  79.                 observer.complete();
  80.             });
  81.         })
  82.     }
  83.  
  84.     getUsersList(userType: string): Observable<Array<User>> {
  85.  
  86.         var filters = {};
  87.         if (userType) filters['userType'] = userType;
  88.  
  89.         return new Observable(observer => {
  90.             this.db.find(filters, function (err, docs) {
  91.                 console.log("users list: ", docs);
  92.                 observer.next(docs);
  93.                 observer.complete();
  94.             });
  95.         });
  96.     }
  97.  
  98.     addUser(user: User): Observable<User> {
  99.         console.log("addUser: ", user);
  100.         return new Observable(observer => {
  101.             this.db.insert(user, function (err, doc) {
  102.                 observer.next(doc);
  103.                 observer.complete();
  104.             });
  105.         });
  106.     }
  107.  
  108.     updateUser(user: User): Observable<User> {
  109.  
  110.         console.log("update User ", user);
  111.         return new Observable(observer => {
  112.  
  113.             this.db.update({ _id: user._id }, user, { returnUpdatedDocs: true },
  114.                 (err, numAffected, affectedDocuments, upsert) => {
  115.                     if (err) {
  116.                         console.error(err);
  117.                         observer.error(err);
  118.                     }
  119.                     console.log("updated: ", affectedDocuments);
  120.                     observer.next(affectedDocuments);
  121.                     observer.complete();
  122.                 });
  123.         });
  124.     }
  125.  
  126.     deleteUser(id: string): Observable<Number> {
  127.         return new Observable(observer => {
  128.             this.db.remove({ _id: id }, {}, function (err, numAffected) {
  129.                 observer.next(numAffected);
  130.                 observer.complete();
  131.             });
  132.         });
  133.     }
  134.  
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement