From d124ed2f069a57b6d00fd99eb81dea0710c1ef57 Mon Sep 17 00:00:00 2001 From: mjeannin2025 Date: Fri, 26 Sep 2025 13:45:58 +0200 Subject: [PATCH] change for NasaApi --- angular.json | 8 ++- src/app/app.config.ts | 4 +- src/app/app.css | 3 +- src/app/app.html | 19 +------ src/app/app.routes.ts | 3 ++ src/app/interfaces/color.ts | 33 ++++++++++++ src/app/interfaces/nasa-api.ts | 52 +++++++++++++++++++ src/app/interfaces/picture.ts | 11 ++++ .../pages/{video/video.css => potd/potd.css} | 0 src/app/pages/potd/potd.html | 11 ++++ .../video.spec.ts => potd/potd.spec.ts} | 12 ++--- src/app/pages/potd/potd.ts | 29 +++++++++++ src/app/pages/search/search.css | 7 +++ src/app/pages/search/search.html | 49 ++++++++++++++++- src/app/pages/search/search.ts | 7 ++- src/app/pages/video/video.html | 1 - src/app/pages/video/video.ts | 11 ---- src/app/services/napod.spec.ts | 16 ++++++ src/app/services/napod.ts | 29 +++++++++++ src/app/shared/header/header.html | 4 +- src/environments/environment.development.ts | 7 +++ src/environments/environment.ts | 3 ++ src/styles.css | 2 +- 23 files changed, 276 insertions(+), 45 deletions(-) create mode 100644 src/app/interfaces/color.ts create mode 100644 src/app/interfaces/nasa-api.ts create mode 100644 src/app/interfaces/picture.ts rename src/app/pages/{video/video.css => potd/potd.css} (100%) create mode 100644 src/app/pages/potd/potd.html rename src/app/pages/{video/video.spec.ts => potd/potd.spec.ts} (63%) create mode 100644 src/app/pages/potd/potd.ts delete mode 100644 src/app/pages/video/video.html delete mode 100644 src/app/pages/video/video.ts create mode 100644 src/app/services/napod.spec.ts create mode 100644 src/app/services/napod.ts create mode 100644 src/environments/environment.development.ts create mode 100644 src/environments/environment.ts diff --git a/angular.json b/angular.json index d254c77..dd51ccc 100644 --- a/angular.json +++ b/angular.json @@ -44,7 +44,13 @@ "development": { "optimization": false, "extractLicenses": false, - "sourceMap": true + "sourceMap": true, + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.development.ts" + } + ] } }, "defaultConfiguration": "production" diff --git a/src/app/app.config.ts b/src/app/app.config.ts index 2e06ce8..a0ddd34 100644 --- a/src/app/app.config.ts +++ b/src/app/app.config.ts @@ -2,11 +2,13 @@ import { ApplicationConfig, provideBrowserGlobalErrorListeners, provideZonelessC import { provideRouter } from '@angular/router'; import { routes } from './app.routes'; +import { provideHttpClient } from '@angular/common/http'; export const appConfig: ApplicationConfig = { providers: [ provideBrowserGlobalErrorListeners(), provideZonelessChangeDetection(), - provideRouter(routes) + provideRouter(routes), + provideHttpClient() ] }; diff --git a/src/app/app.css b/src/app/app.css index 2b28a8f..84936b0 100644 --- a/src/app/app.css +++ b/src/app/app.css @@ -1,6 +1,5 @@ - - main { + width: 100%; margin: 2rem; display: flex; } diff --git a/src/app/app.html b/src/app/app.html index 8937551..2da69d3 100644 --- a/src/app/app.html +++ b/src/app/app.html @@ -1,22 +1,5 @@
- -
- -
- - -
- -
- - +
\ No newline at end of file diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index 3aa7c95..b0cf5c2 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -6,6 +6,9 @@ export const routes: Routes = [ {path: 'home', loadComponent: ()=> import("./pages/home/home").then(m =>m.Home)}, {path: 'login', loadComponent: ()=> import("./pages/login/login").then(m =>m.Login)}, {path: 'register', loadComponent: ()=> import("./pages/register/register").then(m =>m.Register)}, + {path: 'login', loadComponent: ()=> import("./pages/login/login").then(m =>m.Login)}, + {path: 'potd', loadComponent: ()=> import("./pages/potd/potd").then(m =>m.POTD)}, + {path: 'search', loadComponent: ()=> import("./pages/search/search").then(m =>m.Search)}, {path: 'admin',canActivate: [adminGuard], loadChildren: () => import('./pages/admin/admin').then(m => m.Admin), data: { role: 'ADMIN' } }, //version si besoin de multiplier les routes admin // {path: 'admin',canActivate: [adminGuard], loadChildren: () => import('./pages/admin/admin.routes').then(m => m.ADMIN_ROUTES), data: { role: 'ADMIN' } }, diff --git a/src/app/interfaces/color.ts b/src/app/interfaces/color.ts new file mode 100644 index 0000000..96dd8a8 --- /dev/null +++ b/src/app/interfaces/color.ts @@ -0,0 +1,33 @@ +export type ColorApi = Color[] + +export interface Color { + id: number + title: string + userName: string + numViews: number + numVotes: number + numComments: number + numHearts: number + rank: number + dateCreated: string + hex: string + rgb: Rgb + hsv: Hsv + description: string + url: string + imageUrl: string + badgeUrl: string + apiUrl: string +} + +export interface Rgb { + red: number + green: number + blue: number +} + +export interface Hsv { + hue: number + saturation: number + value: number +} diff --git a/src/app/interfaces/nasa-api.ts b/src/app/interfaces/nasa-api.ts new file mode 100644 index 0000000..5b278ba --- /dev/null +++ b/src/app/interfaces/nasa-api.ts @@ -0,0 +1,52 @@ +export interface NasaApi { + collection: Collection + } + + export interface Collection { + version: string + href: string + items: Item[] + metadata: Metadata + links: Link2[] + } + + export interface Item { + href: string + data: Daum[] + links: Link[] + } + + export interface Daum { + center: string + date_created: string + description?: string + keywords?: string[] + media_type: string + nasa_id: string + title: string + description_508?: string + album?: string[] + location?: string + secondary_creator?: string + photographer?: string + } + + export interface Link { + href: string + rel: string + render?: string + width?: number + size?: number + height?: number + } + + export interface Metadata { + total_hits: number + } + + export interface Link2 { + rel: string + prompt: string + href: string + } + \ No newline at end of file diff --git a/src/app/interfaces/picture.ts b/src/app/interfaces/picture.ts new file mode 100644 index 0000000..d8e4f21 --- /dev/null +++ b/src/app/interfaces/picture.ts @@ -0,0 +1,11 @@ +export interface Picture { + copyright: string + date: string + explanation: string + hdurl: string + media_type: string + service_version: string + title: string + url: string + } + \ No newline at end of file diff --git a/src/app/pages/video/video.css b/src/app/pages/potd/potd.css similarity index 100% rename from src/app/pages/video/video.css rename to src/app/pages/potd/potd.css diff --git a/src/app/pages/potd/potd.html b/src/app/pages/potd/potd.html new file mode 100644 index 0000000..d9aaa80 --- /dev/null +++ b/src/app/pages/potd/potd.html @@ -0,0 +1,11 @@ +
+
+

{{nasaPOTD()?.title}}

+

{{nasaPOTD()?.explanation}}

+
+
+ Nasa picture of the day +
+
\ No newline at end of file diff --git a/src/app/pages/video/video.spec.ts b/src/app/pages/potd/potd.spec.ts similarity index 63% rename from src/app/pages/video/video.spec.ts rename to src/app/pages/potd/potd.spec.ts index a67a7dc..49caaab 100644 --- a/src/app/pages/video/video.spec.ts +++ b/src/app/pages/potd/potd.spec.ts @@ -1,18 +1,18 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { Video } from './video'; +import { POTD } from './potd'; -describe('Video', () => { - let component: Video; - let fixture: ComponentFixture