diff --git a/db.json b/db.json index baf7af9..dbbf1e9 100644 --- a/db.json +++ b/db.json @@ -4,13 +4,13 @@ "id": 1, "name": "Sprite", "cost": 0.5, - "remaining": 10 + "remaining": 4 }, { "id": 2, "name": "Coke", "cost": 0.5, - "remaining": 10 + "remaining": 9 }, { "id": 3, diff --git a/src/app/app.component.html b/src/app/app.component.html index 20f9499..1db1e32 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -2,3 +2,4 @@

{{title}}

+ diff --git a/src/app/app.module.ts b/src/app/app.module.ts index b290358..748b431 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -8,11 +8,13 @@ import { InsertCoinComponent } from './insert-coin/insert-coin.component'; import { ItemService } from './item/item.service'; import { BalanceService } from './balance/balance.service'; +import { DispenseItemComponent } from './dispense-item/dispense-item.component'; @NgModule({ declarations: [ AppComponent, - InsertCoinComponent + InsertCoinComponent, + DispenseItemComponent ], imports: [ BrowserModule, diff --git a/src/app/dispense-item/dispense-item.component.css b/src/app/dispense-item/dispense-item.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/dispense-item/dispense-item.component.html b/src/app/dispense-item/dispense-item.component.html new file mode 100644 index 0000000..bff0a72 --- /dev/null +++ b/src/app/dispense-item/dispense-item.component.html @@ -0,0 +1 @@ + diff --git a/src/app/dispense-item/dispense-item.component.spec.ts b/src/app/dispense-item/dispense-item.component.spec.ts new file mode 100644 index 0000000..185c09a --- /dev/null +++ b/src/app/dispense-item/dispense-item.component.spec.ts @@ -0,0 +1,28 @@ +/* tslint:disable:no-unused-variable */ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { By } from '@angular/platform-browser'; +import { DebugElement } from '@angular/core'; + +import { DispenseItemComponent } from './dispense-item.component'; + +describe('DispenseItemComponent', () => { + let component: DispenseItemComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ DispenseItemComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(DispenseItemComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/dispense-item/dispense-item.component.ts b/src/app/dispense-item/dispense-item.component.ts new file mode 100644 index 0000000..d10fc73 --- /dev/null +++ b/src/app/dispense-item/dispense-item.component.ts @@ -0,0 +1,31 @@ +import { Component, OnInit } from '@angular/core'; +import { ItemService } from '../item/item.service'; +import { BalanceService } from '../balance/balance.service'; + +@Component({ + selector: 'app-dispense-item', + templateUrl: './dispense-item.component.html', + styleUrls: ['./dispense-item.component.scss'], + providers: [] +}) +export class DispenseItemComponent implements OnInit { + + constructor(private itemService: ItemService, private balanceService: BalanceService) { } + + ngOnInit() { + dispenseItem() { + const currentBalance = this.balanceService.getBalance(); + if (!this.itemService.hasSufficientBalance(currentBalance)) { + alert("insufficient balance"); + } else if (!this.itemService.hasRemaining()) { + alert("none remaining"); + } else { + // itemSerice.dispenseItem + this.itemService.dispenseItem((item) => { + alert('Enjoy your ' + item.name); + this.balanceService.deductBalance(item.cost); + }) + } + } + } +}