This commit is contained in:
2018-09-08 11:09:49 -04:00
parent 5f428ed8bb
commit 911a8bac49
5 changed files with 37 additions and 20 deletions

View File

@@ -1,9 +1,14 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http'; import { HttpClient, HttpHeaders } from '@angular/common/http';
import {JsonpModule, Jsonp, Response} from '@angular/http';
import { Observable } from 'rxjs/Observable'; import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map' import 'rxjs/add/operator/map'
const httpOptions = {
headers: new HttpHeaders({ 'Content-Type': 'text/html' })
}
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
@@ -11,32 +16,28 @@ import 'rxjs/add/operator/map'
export class StockService { export class StockService {
constructor( constructor(
private http: HttpClient private http: HttpClient,
private jsonp: Jsonp
) { } ) { }
getLogos( symbols ) { getLogos( symbols ) {
var symbolsComma = ""; var symbolsComma = "";
var count = 0; var commaCheck = false;
//console.log(symbols)
for( var symbol in symbols ){ for( var symbol in symbols ){
if( count != 0 ){ if( commaCheck ){
symbolsComma += ","; symbolsComma += ",";
} }
count++; commaCheck = true;
//console.log(symbols[symbol].Symbol)
symbolsComma += 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&callback=JSONP_CALLBACK";
const url = "https://api.iextrading.com/1.0/stock/market/batch?symbols=" + symbolsComma + "&types=logo"; return this.jsonp.request(url)
return this.http.get<any>(url)
.map(logos => { .map(logos => {
return logos; return logos["_body"];
}); });
} }

View File

@@ -9,8 +9,8 @@ import { SearchViewComponent } from './search-view/search-view.component';
import { StockViewComponent } from './stock-view/stock-view.component'; import { StockViewComponent } from './stock-view/stock-view.component';
import { HttpClientModule } from '@angular/common/http'; import { HttpClientModule } from '@angular/common/http';
import { JsonpModule } from '@angular/http';
import { HttpClientInMemoryWebApiModule } from 'angular-in-memory-web-api'; import { HttpClientInMemoryWebApiModule } from 'angular-in-memory-web-api';
//import { InMemoryDataService } from './_mockdata/mock-data-users';
import { InMemoryDataService } from './_mockdata/mock-data-nasdaq'; import { InMemoryDataService } from './_mockdata/mock-data-nasdaq';
import { AlertComponent } from './_helpers/alert.component'; import { AlertComponent } from './_helpers/alert.component';
@@ -55,7 +55,8 @@ import {MatListModule} from '@angular/material/list';
MatButtonModule, MatButtonModule,
MatIconModule, MatIconModule,
MatDividerModule, MatDividerModule,
MatListModule MatListModule,
JsonpModule
], ],
providers: [ providers: [
AlertService, AlertService,

View File

@@ -17,7 +17,13 @@
<div> <div>
<mat-list> <mat-list>
<mat-list-item *ngFor="let company of searchResults" (click)="onSelect(company.Symbol)"> {{company.Name}} </mat-list-item> <mat-list-item *ngFor="let company of searchResults" (click)="onSelect(company.Symbol)">
<div class="fullWidth">
<p class="alignleft">{{company.Name}}</p>
<img class="ipoMiniLogo alignright" src="{{searchResultLogos[company.Symbol].logo.url}}">
<div style="clear: both;"></div>
</div>
</mat-list-item>
</mat-list> </mat-list>
</div> </div>

View File

@@ -25,7 +25,8 @@ export class SearchViewComponent implements OnInit {
} }
searchCompany( searchData ){ searchCompany( searchData ){
this.nasdaqSearchService.query( searchData ) if( searchData.length > 3 ){
this.nasdaqSearchService.query( searchData )
.subscribe( .subscribe(
data => { data => {
if( Object.keys(data).length === 0 ){ if( Object.keys(data).length === 0 ){
@@ -46,6 +47,7 @@ export class SearchViewComponent implements OnInit {
//console.log(error) //console.log(error)
//this.alertService.error( "Bad username or password" ); //this.alertService.error( "Bad username or password" );
}); });
}
} }
getLogos( companySearchResults ){ getLogos( companySearchResults ){
@@ -60,12 +62,12 @@ export class SearchViewComponent implements OnInit {
//console.log(data[0].userName); //console.log(data[0].userName);
//localStorage.setItem('currentUser', JSON.stringify(data[0])); //localStorage.setItem('currentUser', JSON.stringify(data[0]));
//this.router.navigate(["home"]); //this.router.navigate(["home"]);
console.log("good?");
console.log( data ); console.log( data );
//this.searchResults = data; //this.searchResults = data;
//this.companySearchResults( data ); //this.companySearchResults( data );
//this.searchResults = companySearchResults; this.searchResults = companySearchResults;
//this.searchResultLogos = data; this.searchResultLogos = data;
} }
}, },
error => { error => {

View File

@@ -31,3 +31,10 @@
.alert-danger mat-card{ .alert-danger mat-card{
background-color: pink; background-color: pink;
} }
.ipoMiniLogo{
width:35px;
height: auto;
border-radius: 50%;
text-align: right;
}