From a35baeba6a3c6d51b766a754253dd413752ae27b Mon Sep 17 00:00:00 2001 From: "DESKTOP-BC3NEC6\\chiefsoft" Date: Tue, 24 Jan 2023 16:54:33 -0500 Subject: [PATCH] Added API call --- .REMEMBER | 4 +- angular.json | 3 +- package.json | 2 +- src/app/app.module.ts | 5 +- src/app/services/apicore.service.spec.ts | 16 +++++ src/app/services/apicore.service.ts | 31 +++++++++ src/app/user-login/user-login.page.html | 9 +-- .../userpage/user-dash/user-dash.page.html | 11 +++ src/app/userpage/user-dash/user-dash.page.ts | 69 +++++++++++++++---- src/environments/environment.ts | 5 +- 10 files changed, 131 insertions(+), 24 deletions(-) create mode 100644 src/app/services/apicore.service.spec.ts create mode 100644 src/app/services/apicore.service.ts diff --git a/.REMEMBER b/.REMEMBER index 45990a0..4cab1d0 100644 --- a/.REMEMBER +++ b/.REMEMBER @@ -1,4 +1,6 @@ -$ ionic generate +THIS IS THE IONIC PROJECT + + ionic generate $ ionic generate page $ ionic generate page contact $ ionic generate component contact/form diff --git a/angular.json b/angular.json index 31a8781..62e5120 100644 --- a/angular.json +++ b/angular.json @@ -136,7 +136,8 @@ "cli": { "schematicCollections": [ "@ionic/angular-toolkit" - ] + ], + "analytics": false }, "schematics": { "@ionic/angular-toolkit:component": { diff --git a/package.json b/package.json index a144756..f73eedf 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "@angular-eslint/eslint-plugin": "^14.0.0", "@angular-eslint/eslint-plugin-template": "^14.0.0", "@angular-eslint/template-parser": "^14.0.0", - "@angular/cli": "^15.0.0", + "@angular/cli": "15.1.2", "@angular/compiler": "^15.0.0", "@angular/compiler-cli": "^15.0.0", "@angular/language-service": "^15.0.0", diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 34b715b..b69ede4 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -7,9 +7,12 @@ import { IonicModule, IonicRouteStrategy } from '@ionic/angular'; import { AppComponent } from './app.component'; import { AppRoutingModule } from './app-routing.module'; +import { HttpClientModule } from '@angular/common/http'; + + @NgModule({ declarations: [AppComponent], - imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule], + imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule,HttpClientModule], providers: [{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }], bootstrap: [AppComponent], }) diff --git a/src/app/services/apicore.service.spec.ts b/src/app/services/apicore.service.spec.ts new file mode 100644 index 0000000..74bd68e --- /dev/null +++ b/src/app/services/apicore.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { ApicoreService } from './apicore.service'; + +describe('ApicoreService', () => { + let service: ApicoreService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(ApicoreService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/apicore.service.ts b/src/app/services/apicore.service.ts new file mode 100644 index 0000000..d14e2f6 --- /dev/null +++ b/src/app/services/apicore.service.ts @@ -0,0 +1,31 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { environment } from 'src/environments/environment'; + +export interface ApiResult { + page: number; + results: any[]; + total_pages: number; + total_results: number; +} + +@Injectable({ + providedIn: 'root' +}) +export class ApicoreService { + + constructor(private http: HttpClient) {} + + getTopRatedBlogs(page = 1): Observable { + return this.http.get( + `${environment.baseUrl}/blogdata?page=${page}&api_key=${environment.apiKey}` + ); + } + + getMovieDetails(id: string): Observable { + return this.http.get( + `${environment.baseUrl}/movie/${id}?api_key=${environment.apiKey}` + ); + } +} diff --git a/src/app/user-login/user-login.page.html b/src/app/user-login/user-login.page.html index 955a643..d086020 100644 --- a/src/app/user-login/user-login.page.html +++ b/src/app/user-login/user-login.page.html @@ -20,17 +20,14 @@ - Sign In + Sign In - Forgot Password? + Forgot Password? - + \ No newline at end of file diff --git a/src/app/userpage/user-dash/user-dash.page.html b/src/app/userpage/user-dash/user-dash.page.html index 7ba6f7b..1216544 100644 --- a/src/app/userpage/user-dash/user-dash.page.html +++ b/src/app/userpage/user-dash/user-dash.page.html @@ -37,4 +37,15 @@ + + {{item.post_title}} + + {{item.post_title}} + + + + THis is some contatnts to show for noe + + + diff --git a/src/app/userpage/user-dash/user-dash.page.ts b/src/app/userpage/user-dash/user-dash.page.ts index 4458573..391fc1f 100644 --- a/src/app/userpage/user-dash/user-dash.page.ts +++ b/src/app/userpage/user-dash/user-dash.page.ts @@ -1,4 +1,7 @@ import { Component, OnInit } from '@angular/core'; +import { InfiniteScrollCustomEvent, LoadingController } from '@ionic/angular'; +import { ApicoreService } from 'src/app/services/apicore.service'; +import { environment } from 'src/environments/environment'; @Component({ selector: 'app-user-dash', @@ -6,22 +9,62 @@ import { Component, OnInit } from '@angular/core'; styleUrls: ['./user-dash.page.scss'], }) export class UserDashPage implements OnInit { - what_is_below:string=''; - constructor() { } + what_is_below: string = ''; + blogData:any; + currentPage = 1; + + constructor( + private apicoreService: ApicoreService, + private loadingCtrl: LoadingController + ) {} slides_items = [ - {menu_key: "thisleadto", name: "This Menu 11", extra: "c"}, - {menu_key: "thisleadto", name: "This Menu 22", extra: "c"}, - {menu_key: "thisleadto", name: "This Menu 33", extra: "c"}, - {menu_key: "thisleadto", name: "This Menu 44", extra: "c"}, - {menu_key: "thisleadto", name: "This Menu 55", extra: "c"}, - {menu_key: "thisleadto", name: "This Menu 66", extra: "c"}, - {menu_key: "thisleadto", name: "This Menu 77", extra: "c"}, - {menu_key: "thisleadto", name: "This Menu 88", extra: "c"} - ] + { menu_key: 'thisleadto', name: 'This Menu 11', extra: 'c' }, + { menu_key: 'thisleadto', name: 'This Menu 22', extra: 'c' }, + { menu_key: 'thisleadto', name: 'This Menu 33', extra: 'c' }, + { menu_key: 'thisleadto', name: 'This Menu 44', extra: 'c' }, + { menu_key: 'thisleadto', name: 'This Menu 55', extra: 'c' }, + { menu_key: 'thisleadto', name: 'This Menu 66', extra: 'c' }, + { menu_key: 'thisleadto', name: 'This Menu 77', extra: 'c' }, + { menu_key: 'thisleadto', name: 'This Menu 88', extra: 'c' }, + ]; ngOnInit() { + this.loadBlogData(); } - selectedMenu(menuData:any){ + selectedMenu(menuData: any) { alert(menuData.name); - this.what_is_below=menuData.name; + + this.what_is_below = menuData.name; + } + + async loadBlogData(event?: InfiniteScrollCustomEvent) { + const loading = await this.loadingCtrl.create({ + message: 'Loading..', + spinner: 'bubbles', + }); + await loading.present(); + + this.apicoreService.getTopRatedBlogs(this.currentPage).subscribe( + (res) => { + loading.dismiss(); + this.blogData=res; + console.log(res); + // debugger; + //this.movies.push(...res.results); + + event?.target.complete(); + if (event) { + event.target.disabled = res.total_pages === this.currentPage; + } + }, + (err) => { + console.log(err); + loading.dismiss(); + } + ); + } + + loadMore(event: InfiniteScrollCustomEvent) { + this.currentPage++; + this.loadBlogData(event); } } diff --git a/src/environments/environment.ts b/src/environments/environment.ts index f56ff47..6e9404b 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -3,7 +3,10 @@ // The list of file replacements can be found in `angular.json`. export const environment = { - production: false + production: false, + apiKey: '', // <-- Enter your own key here!' + baseUrl: 'https://devapi.mermsemr.com/en/mobile/api/v2/myfit', + images: 'http://image.tmdb.org/t/p', }; /*