Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { SessionStorage } from '../../utils/storage';
- import { GenericResponse } from '../../../commons/models';
- import { UserType } from 'commons/enums';
- import { User } from 'commons/models';
- import { Injectable } from '@angular/core';
- import * as DataStore from 'nedb';
- import { Observable } from 'rxjs/Observable';
- import { AccountService } from 'services/account-service/account.service';
- @Injectable()
- export class AccountMockService extends AccountService {
- @SessionStorage
- public session: any;
- // store the URL so we can redirect after logging in
- redirectUrl: string;
- protected db;
- constructor() {
- super();
- this.db = new DataStore({
- filename: "users.db",
- autoload: true,
- onload: (err) => {
- this.initData();
- }
- });
- }
- private initData() {
- this.db.find({}, (err, docs) => {
- if (docs && docs.length == 0) {
- var user = new User();
- user.username = 'admin@fr.com';
- user.email = 'admin@fr.com';
- user.password = 'admin'
- user.token = 'dgfdf4544345knk435';
- user.referent.name = 'Facile';
- user.referent.surname = 'Immobiliare';
- user.userType = UserType[UserType.administrator];
- this.db.insert(user, function (err, doc) {
- console.log("Inserito utente mock");
- });
- }
- });
- }
- login(user: User): Observable<GenericResponse<User>> {
- return new Observable(observer => {
- this.db.find({ username: user.username, password: user.password }, (err, docs) => {
- console.log("login: ", docs);
- if (docs) {
- this.session = docs[0];
- observer.next(docs[0]);
- observer.complete();
- }
- else {
- observer.error("Autenticazione fallita");
- }
- });
- });
- }
- getUser(id: string): Observable<User> {
- return new Observable(observer => {
- this.db.find({ _id: id }, function (err, docs) {
- observer.next(docs[0]);
- observer.complete();
- });
- })
- }
- getUsersList(userType: string): Observable<Array<User>> {
- var filters = {};
- if (userType) filters['userType'] = userType;
- return new Observable(observer => {
- this.db.find(filters, function (err, docs) {
- console.log("users list: ", docs);
- observer.next(docs);
- observer.complete();
- });
- });
- }
- addUser(user: User): Observable<User> {
- console.log("addUser: ", user);
- return new Observable(observer => {
- this.db.insert(user, function (err, doc) {
- observer.next(doc);
- observer.complete();
- });
- });
- }
- updateUser(user: User): Observable<User> {
- console.log("update User ", user);
- return new Observable(observer => {
- this.db.update({ _id: user._id }, user, { returnUpdatedDocs: true },
- (err, numAffected, affectedDocuments, upsert) => {
- if (err) {
- console.error(err);
- observer.error(err);
- }
- console.log("updated: ", affectedDocuments);
- observer.next(affectedDocuments);
- observer.complete();
- });
- });
- }
- deleteUser(id: string): Observable<Number> {
- return new Observable(observer => {
- this.db.remove({ _id: id }, {}, function (err, numAffected) {
- observer.next(numAffected);
- observer.complete();
- });
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement