diff --git a/src/app/_mockdata/mock-data-nasdaq.ts b/src/app/_mockdata/mock-data-nasdaq.ts index be65e28..0b9ac06 100644 --- a/src/app/_mockdata/mock-data-nasdaq.ts +++ b/src/app/_mockdata/mock-data-nasdaq.ts @@ -1,8 +1,42 @@ import { InMemoryDbService } from 'angular-in-memory-web-api'; -export class InMemoryDataService2 implements InMemoryDbService { +export class InMemoryDataService implements InMemoryDbService { createDb() { - const nasdaq = [ + + let users = [ + { + id: 11, + firstName: "Christopher", + lastName: "Koch", + role: "B5", + email: "ckochXlazypug.net", + userName: "ckoch", + password: "test", + token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJsYXp5cHVnLm5ldCIsImlhdCI6MTUzNjE4NzUwMSwiZXhwIjoxNTY3NzIzNTAxLCJhdWQiOiJ3d3cubGF6eXB1Zy5uZXQiLCJzdWIiOiJja29jaEBsYXp5cHVnLm5ldCIsImZpcnN0TmFtZSI6IkNocmlzdG9waGVyIiwiTGFzdE5hbWUiOiJLb2NoIiwiZW1haWwiOiJja29jaEBsYXp5cHVnLm5ldCIsInJvbGUiOiJCNSIsImlkIjoiMTEifQ.UcIStKvZdYqWKho1I1tVta8zNLQD7KpP4n8l93wStEI" + }, + { + id: 12, + firstName: "Rebecca", + lastName: "Koch", + role: "B4", + email: "rkoch@lazypug.net", + userName: "rkoch", + password: "test2", + token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJsYXp5cHVnLm5ldCIsImlhdCI6MTUzNjE4NzUwMSwiZXhwIjoxNTY3NzIzNTAxLCJhdWQiOiJ3d3cubGF6eXB1Zy5uZXQiLCJzdWIiOiJya29jaEBsYXp5cHVnLm5ldCIsImZpcnN0TmFtZSI6IlJlYmVjY2EiLCJMYXN0TmFtZSI6IktvY2giLCJlbWFpbCI6InJrb2NoQGxhenlwdWcubmV0Iiwicm9sZSI6IkI0IiwiaWQiOiIxMiJ9.baXMibtXAEUbbm1Nf4VP0yefFovR2-QHpRqzLQO7CtM" + }, + { + id: 13, + firstName: "Henry", + lastName: "Koch", + role: "B2", + email: "hkoch@lazypug.net", + userName: "hkoch", + password: "test3", + token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJsYXp5cHVnLm5ldCIsImlhdCI6MTUzNjE4NzUwMSwiZXhwIjoxNTY3NzIzNTAxLCJhdWQiOiJ3d3cubGF6eXB1Zy5uZXQiLCJzdWIiOiJoa29jaEBsYXp5cHVnLm5ldCIsImZpcnN0TmFtZSI6IkhlbnJ5IiwiTGFzdE5hbWUiOiJLb2NoIiwiZW1haWwiOiJoa29jaEBsYXp5cHVnLm5ldCIsInJvbGUiOiJCMiIsImlkIjoiMTMifQ.Y6g9h4knKoawHmQEqT9A0UGOwYr4fKENyJ1O3MP6H5g" + } + ]; + + let nasdaq = [ { "Symbol": "PIH", "Name": "1347 Property Insurance Holdings, Inc." @@ -13564,6 +13598,7 @@ export class InMemoryDataService2 implements InMemoryDbService { "Name": "Zynga Inc." } ]; - return {nasdaq}; + + return {nasdaq, users}; } } \ No newline at end of file diff --git a/src/app/_services/login.service.ts b/src/app/_services/login.service.ts index b3f1d8e..7f2d7b3 100644 --- a/src/app/_services/login.service.ts +++ b/src/app/_services/login.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { HttpClient, HttpHeaders } from '@angular/common/http'; +import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs/Observable'; import 'rxjs/add/operator/map' diff --git a/src/app/_services/stock.service.ts b/src/app/_services/stock.service.ts index d3c3d9b..67bda10 100644 --- a/src/app/_services/stock.service.ts +++ b/src/app/_services/stock.service.ts @@ -1,9 +1,43 @@ import { Injectable } from '@angular/core'; +import { HttpClient, HttpHeaders } from '@angular/common/http'; + +import { Observable } from 'rxjs/Observable'; +import 'rxjs/add/operator/map' + @Injectable({ providedIn: 'root' }) export class StockService { - constructor() { } + constructor( + private http: HttpClient + ) { } + + getLogos( symbols ) { + + var symbolsComma = ""; + var count = 0; + + //console.log(symbols) + for( var symbol in symbols ){ + if( count != 0 ){ + symbolsComma += ","; + + } + count++; + //console.log(symbols[symbol].Symbol) + symbolsComma += symbols[symbol].Symbol; + + } + console.log(symbolsComma); + + + const url = "https://api.iextrading.com/1.0/stock/market/batch?symbols=" + symbolsComma + "&types=logo"; + return this.http.get(url) + .map(logos => { + return logos; + }); + + } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 3b90a95..8fd1ccf 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -10,8 +10,8 @@ import { StockViewComponent } from './stock-view/stock-view.component'; import { HttpClientModule } from '@angular/common/http'; import { HttpClientInMemoryWebApiModule } from 'angular-in-memory-web-api'; -import { InMemoryDataService } from './_mockdata/mock-data-users'; -import { InMemoryDataService2 } from './_mockdata/mock-data-nasdaq'; +//import { InMemoryDataService } from './_mockdata/mock-data-users'; +import { InMemoryDataService } from './_mockdata/mock-data-nasdaq'; import { AlertComponent } from './_helpers/alert.component'; import { AlertService } from './_services/alert.service'; @@ -26,6 +26,8 @@ import { MatInputModule } from '@angular/material/input'; import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; import { MatIconRegistry } from "@angular/material"; +import {MatDividerModule} from '@angular/material/divider'; +import {MatListModule} from '@angular/material/list'; @NgModule({ @@ -43,10 +45,7 @@ import { MatIconRegistry } from "@angular/material"; AppRoutingModule, HttpClientModule, HttpClientInMemoryWebApiModule.forRoot( - InMemoryDataService, { dataEncapsulation: false } - ), - HttpClientInMemoryWebApiModule.forRoot( - InMemoryDataService2, { dataEncapsulation: false } + InMemoryDataService ), ReactiveFormsModule, BrowserAnimationsModule, @@ -54,7 +53,9 @@ import { MatIconRegistry } from "@angular/material"; MatFormFieldModule, MatInputModule, MatButtonModule, - MatIconModule + MatIconModule, + MatDividerModule, + MatListModule ], providers: [ AlertService, diff --git a/src/app/search-view/search-view.component.html b/src/app/search-view/search-view.component.html index 6dce1ba..845f2f1 100644 --- a/src/app/search-view/search-view.component.html +++ b/src/app/search-view/search-view.component.html @@ -1,3 +1,28 @@ -

- search-view works! -

+
+ + + +

Search IPO's

+
+
+ + + + + + +
+ + {{company.Name}} + +
+ + + +
+ +
\ No newline at end of file diff --git a/src/app/search-view/search-view.component.ts b/src/app/search-view/search-view.component.ts index b2f39e1..029be4d 100644 --- a/src/app/search-view/search-view.component.ts +++ b/src/app/search-view/search-view.component.ts @@ -2,6 +2,7 @@ import { Component, OnInit, HostListener } from '@angular/core'; import { EmitcomService } from '../_services/emitcom.service'; import { NasdaqSearchService } from '../_services/nasdaq-search.service'; +import { StockService } from '../_services/stock.service'; @Component({ selector: 'app-search-view', @@ -10,15 +11,21 @@ import { NasdaqSearchService } from '../_services/nasdaq-search.service'; }) export class SearchViewComponent implements OnInit { + searchResults; + searchResultLogos; constructor( private emitcomService: EmitcomService, - private nasdaqSearchService: NasdaqSearchService + private nasdaqSearchService: NasdaqSearchService, + private stockService: StockService ) { } ngOnInit() { - this.nasdaqSearchService.query( "advanced m" ) + } + + searchCompany( searchData ){ + this.nasdaqSearchService.query( searchData ) .subscribe( data => { if( Object.keys(data).length === 0 ){ @@ -27,19 +34,58 @@ export class SearchViewComponent implements OnInit { //console.log(data[0].userName); //localStorage.setItem('currentUser', JSON.stringify(data[0])); //this.router.navigate(["home"]); - console.log( data ); + + //console.log( data ); + //this.searchResults = data; + if( data.length > 0 ){ + this.getLogos( data ); + } } }, error => { //console.log(error) //this.alertService.error( "Bad username or password" ); }); + } + + getLogos( companySearchResults ){ + + this.stockService.getLogos( companySearchResults ) + .subscribe( + data => { + if( Object.keys(data).length === 0 ){ + //this.alertService.error( "Bad username or password" ); + console.log("FAIL1"); + }else{ + //console.log(data[0].userName); + //localStorage.setItem('currentUser', JSON.stringify(data[0])); + //this.router.navigate(["home"]); + + console.log( data ); + //this.searchResults = data; + //this.companySearchResults( data ); + //this.searchResults = companySearchResults; + //this.searchResultLogos = data; + } + }, + error => { + console.log("FAIL2"); + console.log(error) + //this.alertService.error( "Bad username or password" ); + }); } + onSelect( selectedSymbol ){ + this.emitcomService.sendData( selectedSymbol ); + } + + + /* @HostListener('click') click() { this.emitcomService.sendData( 42 ); } + */ }