search
This commit is contained in:
@@ -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"];
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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 => {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user