ソースを参照

HTTP request for mall by ID

master
kj1352 6年前
親
コミット
a5a26a1cfe
7個のファイルの変更、3226行の追加、482行の削除
  1. +3192
    -471
      package-lock.json
  2. +1
    -1
      package.json
  3. +2
    -0
      src/app/app.module.ts
  4. +6
    -6
      src/app/malls/malls.page.html
  5. +6
    -3
      src/app/malls/malls.page.ts
  6. +3
    -0
      src/app/mocks/url.ts
  7. +16
    -1
      src/app/services/mall.service.ts

+ 3192
- 471
package-lock.json
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 1
- 1
package.json ファイルの表示

@@ -41,7 +41,7 @@
}, },
"devDependencies": { "devDependencies": {
"@angular-devkit/architect": "~0.801.2", "@angular-devkit/architect": "~0.801.2",
"@angular-devkit/build-angular": "~0.801.2",
"@angular-devkit/build-angular": "^0.803.22",
"@angular-devkit/core": "~8.1.2", "@angular-devkit/core": "~8.1.2",
"@angular-devkit/schematics": "~8.1.2", "@angular-devkit/schematics": "~8.1.2",
"@angular/cli": "~8.1.2", "@angular/cli": "~8.1.2",


+ 2
- 0
src/app/app.module.ts ファイルの表示

@@ -6,6 +6,7 @@ import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx'; import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx'; import { StatusBar } from '@ionic-native/status-bar/ngx';
import { IonicStorageModule } from '@ionic/storage'; import { IonicStorageModule } from '@ionic/storage';
import { HttpClientModule } from '@angular/common/http';


// Services import // Services import
import { MallService } from './services/mall.service'; import { MallService } from './services/mall.service';
@@ -32,6 +33,7 @@ import { Geolocation } from '@ionic-native/geolocation/ngx';
IonicModule.forRoot(), IonicModule.forRoot(),
AppRoutingModule, AppRoutingModule,
IonicStorageModule.forRoot(), IonicStorageModule.forRoot(),
HttpClientModule,
ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production })], ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production })],
providers: [ providers: [
StatusBar, StatusBar,


+ 6
- 6
src/app/malls/malls.page.html ファイルの表示

@@ -32,7 +32,7 @@
<ion-button color="default" fill="clear" (click)="togglePopup()"> SORT / FILTER </ion-button> <ion-button color="default" fill="clear" (click)="togglePopup()"> SORT / FILTER </ion-button>
</div> </div>


<ion-list lines="none" class="result-list">
<!-- <ion-list lines="none" class="result-list">
<ion-item *ngFor="let mall of malls" (click)="showMallDetails(mall)"> <ion-item *ngFor="let mall of malls" (click)="showMallDetails(mall)">
<img src="{{ mall.image_url }}" slot="start"> <img src="{{ mall.image_url }}" slot="start">
<ion-label> <ion-label>
@@ -70,11 +70,11 @@
</div> </div>
</ion-label> </ion-label>
</ion-item> </ion-item>
</ion-list>
</ion-list> -->


<!-- Ad in between results --> <!-- Ad in between results -->


<section class="advertisement">
<!-- <section class="advertisement">
<div class="heading-holder"> <div class="heading-holder">
<img src="assets/custom/logo.svg"> <img src="assets/custom/logo.svg">
<header> <header>
@@ -85,9 +85,9 @@
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dicta eius molestiae ipsum fugit velit voluptatem vel ad ut debitis earum, nostrum numquam odio maxime eaque corporis! Non et cumque, dignissimos. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dicta eius molestiae ipsum fugit velit voluptatem vel ad ut debitis earum, nostrum numquam odio maxime eaque corporis! Non et cumque, dignissimos.
</p> </p>
<a> Know More </a> <a> Know More </a>
</section>
</section> -->


<div class="common-semi-modal sort-holder" [ngClass]="{'active' : show_sort_popup }">
<!-- <div class="common-semi-modal sort-holder" [ngClass]="{'active' : show_sort_popup }">
<header> <header>
Sort / Filter <button (click)="togglePopup()"> Done </button> Sort / Filter <button (click)="togglePopup()"> Done </button>
</header> </header>
@@ -109,6 +109,6 @@
<span> TIME </span> <span> TIME </span>
</button> </button>
</div> </div>
</div>
</div> -->


</ion-content> </ion-content>

+ 6
- 3
src/app/malls/malls.page.ts ファイルの表示

@@ -20,12 +20,15 @@ export class MallsPage implements OnInit {
) { } ) { }


ngOnInit() { ngOnInit() {
this.mallService.mallsByLocation(10.998264, 77.032465).then((response) => {
console.log(response);
}, (error) => {
console.log(error);
});
} }


ionViewDidEnter() { ionViewDidEnter() {
this.mallService.getAllMalls().then((data: Array<IMall>) => {
this.malls = data;
});

} }


showMallDetails(mall: IMall) { showMallDetails(mall: IMall) {


+ 3
- 0
src/app/mocks/url.ts ファイルの表示

@@ -0,0 +1,3 @@
export const URL: string = 'http://13.126.110.70:8080/mall-aggregator/';

export const TOKEN: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';

+ 16
- 1
src/app/services/mall.service.ts ファイルの表示

@@ -3,6 +3,9 @@ import { MALLS } from '../mocks/malls';
import Mall, { IMall } from '../models/mall'; import Mall, { IMall } from '../models/mall';
import { OfferService } from './offer.service'; import { OfferService } from './offer.service';
import { OutletService } from './outlet.service'; import { OutletService } from './outlet.service';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { TOKEN, URL } from '../mocks/url';



@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
@@ -12,11 +15,23 @@ export class MallService {


constructor( constructor(
private offerService: OfferService, private offerService: OfferService,
private outletService: OutletService
private outletService: OutletService,
private http: HttpClient
) { ) {
this.fetchMalls(); this.fetchMalls();
} }


async mallsByLocation(latitude: number, longitude: number) {
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'Token ' + TOKEN
})
};

return await this.http.get(URL + '/api/maioraservice/mall/v1/latitude/' + latitude + '/longitude/' + longitude + '/', httpOptions).toPromise();
}

private getDenormalizedMall = async (mall: Mall) => { private getDenormalizedMall = async (mall: Mall) => {
const offers = await Promise.all(mall.offers.map(offer_id => this.offerService.getOfferByID(offer_id))); const offers = await Promise.all(mall.offers.map(offer_id => this.offerService.getOfferByID(offer_id)));
const outlets = await Promise.all(mall.outlets.map(outlet_id => this.outletService.getOutletByID(outlet_id))); const outlets = await Promise.all(mall.outlets.map(outlet_id => this.outletService.getOutletByID(outlet_id)));


読み込み中…
キャンセル
保存