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);
+ })
+ }
+ }
+ }
+}