0.0.5 • Published 5 years ago

brewdigital-mock-request v0.0.5

Weekly downloads
3
License
MIT
Repository
bitbucket
Last release
5 years ago

Brew Requests Angular

A mock request system for Angular

Install

npm install brewdigital-mock-request
or
yarn add brewdigital-mock-request

Getting Started

Get Single Mocked Item

Data Object

export const post = {
    title: 'Title One',
    description: 'Blah blah blah'
};

Example Component

import {Component, OnInit} from '@angular/core';
import {BehaviorSubject} from 'rxjs';
import {responseType} from 'brewdigital-requests';
import {post} from './data/post.data';
import {MockRequestService, FetchItem} from 'brewdigital-mock-request';


@Component({
    selector: 'app-post',
    template: `
        <div>
            <h2>{{post.value.title}}</h2>
            <p>{{post.value.description}}</p>
        </div>
    `,
    providers: [
        MockRequestService
    ]
})
export class PostComponent implements OnInit {

    private _data$ = new BehaviorSubject({
        title: '',
        description: ''
    });

    constructor(
        private request: MockRequestService
    ) {
        const fetch = new FetchItem();
        fetch.data = post;
        request.fetchData = fetch;
    }

    get post(): BehaviorSubject<{ description: string; title: string }> {
        return this._data$;
    }

    ngOnInit(): void {
        this.request.fetch('/posts').subscribe(response => {
            switch (response.type) {
                case responseType.SUCCESS:
                    this._data$.next(response.data);
                    break;
                default:
                    console.log('Handle Error');
            }
        });
    }
}

Get Array of Mocked Rows

Data Object

export const posts = [
    {
        title: 'Title One',
        description: 'Blah blah blah'
    },
    {
        title: 'Title Two',
        description: 'Blah blah blah'
    },
    {
        title: 'Title Three',
        description: 'Blah blah blah'
    },
];

Example Component

import {Component, OnInit} from '@angular/core';
import {posts} from './data/posts.data';
import {BehaviorSubject} from 'rxjs';
import {responseType} from 'brewdigital-requests';
import {MockRequestService, FetchRows} from 'brewdigital-mock-request';

@Component({
    selector: 'app-posts',
    template: `
        <div *ngFor="let post of (posts | async)">
            <h2>{{post.title}}</h2>
            <p>{{post.description}}</p>
        </div>
    `,
    providers: [
        MockRequestService
    ]
})
export class PostsComponent implements OnInit {

    private _data$ = new BehaviorSubject([{
        title: '',
        description: ''
    }]);

    constructor(
        private request: MockRequestService
    ) {
        const fetchRows = new FetchRows();
        fetchRows.data = posts;
        fetchRows.total = 5;
        request.fetchData = fetchRows;
    }

    get posts(): BehaviorSubject<{ description: string; title: string }[]> {
        return this._data$;
    }

    ngOnInit(): void {
        this.request.fetch('/posts').subscribe(response => {
            switch (response.type) {
                case responseType.SUCCESS:
                    this._data$.next(response.data);
                    break;
                default:
                    console.log('Handle Error');
            }
        });
    }
}