diff --git a/user-app/src/app/app-routing.module.ts b/user-app/src/app/app-routing.module.ts index 0abcce6..780badd 100644 --- a/user-app/src/app/app-routing.module.ts +++ b/user-app/src/app/app-routing.module.ts @@ -7,10 +7,37 @@ import { UserDetailComponent } from './pages/user-detail/user-detail.component'; import { CreateUserComponent } from './pages/create-user/create-user.component'; import { AuthGuard } from './guards/auth.guard'; -const routes: Routes = []; +const routes: Routes = [{ + path:"", + component:UserListComponent, +}, +{ + path: 'about-us', + component: AboutUsComponent, +}, + +{ + path: 'contact', + component: ContactComponent, +}, + +{ + path: 'create-user', + component: CreateUserComponent, + canActivate:[AuthGuard] +}, +{ + path: 'user-detail', + component: UserDetailComponent, +}, +]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule], }) + + + + export class AppRoutingModule {} diff --git a/user-app/src/app/guards/auth.guard.ts b/user-app/src/app/guards/auth.guard.ts index 55153f9..8fa3eb6 100644 --- a/user-app/src/app/guards/auth.guard.ts +++ b/user-app/src/app/guards/auth.guard.ts @@ -11,6 +11,6 @@ import { }) export class AuthGuard implements CanActivate { canActivate(): boolean { - return true; + return false; } } diff --git a/user-app/src/app/interceptors/log.interceptor.ts b/user-app/src/app/interceptors/log.interceptor.ts index 059b256..eef6070 100644 --- a/user-app/src/app/interceptors/log.interceptor.ts +++ b/user-app/src/app/interceptors/log.interceptor.ts @@ -16,6 +16,7 @@ export class LogInterceptor implements HttpInterceptor { next: HttpHandler ): Observable> { const requestCopy = request.clone(); + console.log("request intercepted!!"); return next.handle(requestCopy); } } diff --git a/user-app/src/app/pages/app/app.component.html b/user-app/src/app/pages/app/app.component.html index c6e9877..76d6b7f 100644 --- a/user-app/src/app/pages/app/app.component.html +++ b/user-app/src/app/pages/app/app.component.html @@ -1,6 +1,2 @@ -

- Congratulations! Angular set up is complete. -
-
- You are ready to begin the workshop3. -

+ + \ No newline at end of file diff --git a/user-app/src/app/pages/app/app.component.scss b/user-app/src/app/pages/app/app.component.scss index 8b13789..aec38df 100644 --- a/user-app/src/app/pages/app/app.component.scss +++ b/user-app/src/app/pages/app/app.component.scss @@ -1 +1,9 @@ +.normal { + font-size: 15px; + color: blue; +} +.error{ + font-size: 18px; + color: red; +} diff --git a/user-app/src/app/pages/app/app.component.ts b/user-app/src/app/pages/app/app.component.ts index ba8e2e0..d57e70f 100644 --- a/user-app/src/app/pages/app/app.component.ts +++ b/user-app/src/app/pages/app/app.component.ts @@ -5,4 +5,27 @@ import { Component } from '@angular/core'; templateUrl: './app.component.html', styleUrls: ['./app.component.scss'], }) -export class AppComponent {} +export class AppComponent { + name:string ="Deonne"; + show: boolean =false; + names = ['Arun', 'Mark', 'Smith', 'Jack']; + isError: boolean=true; + userName:string=""; + +constructor() { + console.log('Constructor called'); +} +changeName(){ + this.name="Steve"; + console.log(this.userName) +} +ngOnChanges() { + console.log('on changes called'); +} +ngOnInit() { + console.log('on init called'); +} +ngOnDestroy() { + console.log('on destroy called'); +} +} \ No newline at end of file diff --git a/user-app/src/app/pages/create-user/create-user.component.html b/user-app/src/app/pages/create-user/create-user.component.html index b772924..86aab07 100644 --- a/user-app/src/app/pages/create-user/create-user.component.html +++ b/user-app/src/app/pages/create-user/create-user.component.html @@ -1,11 +1,43 @@
-
-
-

Enter Details

-
- - -
+ +
+

Enter Details

+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ Please enter all the details +
+
+ +
+
-
+
+ + diff --git a/user-app/src/app/pages/create-user/create-user.component.ts b/user-app/src/app/pages/create-user/create-user.component.ts index 92e4498..97b58df 100644 --- a/user-app/src/app/pages/create-user/create-user.component.ts +++ b/user-app/src/app/pages/create-user/create-user.component.ts @@ -7,4 +7,38 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms'; templateUrl: './create-user.component.html', styleUrls: ['./create-user.component.scss'], }) -export class CreateUserComponent {} +export class CreateUserComponent { + hasError: boolean = false; + userFormBuilder: FormGroup; + + constructor(private readonly formBuilder: FormBuilder,private userService: UserService) { + this.userFormBuilder = this.formBuilder.group({ + emailId: formBuilder.control("", [Validators.required, Validators.email]), + name: formBuilder.control("", [Validators.required]), + phoneNumber: formBuilder.control("", [Validators.required]), + companyName: formBuilder.control("", [Validators.required]), + city: formBuilder.control("", [Validators.required]), + street: formBuilder.control("", [Validators.required]), + zipCode: formBuilder.control("", [Validators.required]), + }); + } + + addUser() { + this.hasError = false; + if (this.userFormBuilder.valid) { + this.userService.addUser({ + id: Math.floor(Math.random() * 10), + name: this.userFormBuilder.controls['name'].value, + emailId: this.userFormBuilder.controls['emailId'].value, + phoneNumber: this.userFormBuilder.controls['phoneNumber'].value, + companyName: this.userFormBuilder.controls['companyName'].value, + street: this.userFormBuilder.controls['street'].value, + city: this.userFormBuilder.controls['city'].value, + zipCode: this.userFormBuilder.controls['zipCode'].value, + }); + } else { + this.hasError = true; + } + } + +} diff --git a/user-app/src/app/pages/header/header.component.html b/user-app/src/app/pages/header/header.component.html index ad4f732..cf2da6e 100644 --- a/user-app/src/app/pages/header/header.component.html +++ b/user-app/src/app/pages/header/header.component.html @@ -1 +1,13 @@ -

Header Works

+
+ logo + +
\ No newline at end of file diff --git a/user-app/src/app/pages/header/header.component.ts b/user-app/src/app/pages/header/header.component.ts index 7082d31..b0d73cf 100644 --- a/user-app/src/app/pages/header/header.component.ts +++ b/user-app/src/app/pages/header/header.component.ts @@ -1,8 +1,15 @@ -import { Component } from '@angular/core'; +import { Component ,Input,Output,EventEmitter} from '@angular/core'; @Component({ selector: 'app-header', templateUrl: './header.component.html', styleUrls: ['./header.component.scss'], }) -export class HeaderComponent {} +export class HeaderComponent { +@Input() title:string; +@Output() changeValue =new EventEmitter + +onClick(){ + this.changeValue.emit(); +} +} diff --git a/user-app/src/app/pages/user-card/user-card.component.html b/user-app/src/app/pages/user-card/user-card.component.html index c05cd52..d8e2a0d 100644 --- a/user-app/src/app/pages/user-card/user-card.component.html +++ b/user-app/src/app/pages/user-card/user-card.component.html @@ -1,3 +1,12 @@ +
-

User Card works

+

+ {{ emailId }}

+ {{ city }}
+ +
+ + diff --git a/user-app/src/app/pages/user-card/user-card.component.ts b/user-app/src/app/pages/user-card/user-card.component.ts index 8a5b52a..348dca9 100644 --- a/user-app/src/app/pages/user-card/user-card.component.ts +++ b/user-app/src/app/pages/user-card/user-card.component.ts @@ -6,4 +6,15 @@ import { UserService } from 'src/app/services/user.service'; templateUrl: './user-card.component.html', styleUrls: ['./user-card.component.scss'], }) -export class UserCardComponent {} +export class UserCardComponent { + @Input() id: number; + @Input() name: string; + @Input() emailId: string; + @Input() city: string; + +constructor(public userService:UserService){} + +setUserId(id:number){ + this.userService.userId=id +} +} diff --git a/user-app/src/app/pages/user-detail/user-detail.component.html b/user-app/src/app/pages/user-detail/user-detail.component.html index 8a5c8b6..38e563f 100644 --- a/user-app/src/app/pages/user-detail/user-detail.component.html +++ b/user-app/src/app/pages/user-detail/user-detail.component.html @@ -1,3 +1,24 @@

User Detail Works

+
+
+

{{ userDetail.name }}

+ + + +
+

Address

+
+
+
+
+
+
+ Unable to show the data +
+
+ diff --git a/user-app/src/app/pages/user-detail/user-detail.component.ts b/user-app/src/app/pages/user-detail/user-detail.component.ts index 40af64c..33c3e8d 100644 --- a/user-app/src/app/pages/user-detail/user-detail.component.ts +++ b/user-app/src/app/pages/user-detail/user-detail.component.ts @@ -7,4 +7,41 @@ import { UserService } from 'src/app/services/user.service'; templateUrl: './user-detail.component.html', styleUrls: ['./user-detail.component.scss'], }) -export class UserDetailComponent {} +export class UserDetailComponent { + userDetail: UserDetail = { + id: this.userService.userId, + name: '', + city: '', + companyName: '', + emailId: '', + phoneNumber: '', + street: '', + zipCode: '', + }; + + hasError: boolean = false; + + constructor(private userService: UserService) {} + + ngOnInit() { + this.hasError = false; + this.userService.getUserDetail(this.userService.userId).subscribe({ + next: (response: any) => { + console.log('user detail response', response); + this.userDetail.name = response.name; + this.userDetail.emailId = response.email; + this.userDetail.city = response.address.city; + this.userDetail.companyName = response.company.name; + this.userDetail.phoneNumber = response.phone; + this.userDetail.zipCode = response.address.zipcode; + this.userDetail.street = response.address.street; + }, + error: (error) => { + this.hasError = true; + console.log('user detail error', error); + }, + }); + } + + +} diff --git a/user-app/src/app/pages/user-list/user-list.component.html b/user-app/src/app/pages/user-list/user-list.component.html index 9326de9..4a76b70 100644 --- a/user-app/src/app/pages/user-list/user-list.component.html +++ b/user-app/src/app/pages/user-list/user-list.component.html @@ -1,3 +1,10 @@ -
+

User List Works

+ + + +
diff --git a/user-app/src/app/pages/user-list/user-list.component.ts b/user-app/src/app/pages/user-list/user-list.component.ts index 60cb003..2c2057b 100644 --- a/user-app/src/app/pages/user-list/user-list.component.ts +++ b/user-app/src/app/pages/user-list/user-list.component.ts @@ -7,4 +7,25 @@ import { UserService } from 'src/app/services/user.service'; templateUrl: './user-list.component.html', styleUrls: ['./user-list.component.scss'], }) -export class UserListComponent {} +export class UserListComponent { + // users : User[]=[ + // { + // name:'Deonne', + // city:'gfyg', + // emailId:'marylyn@gmail.com', + // id:1, + // }, + // { + // name:'Fahad', + // city:'idk', + // emailId:'mrAhmed838@gmail.com', + // id:2, + // } + // ] + constructor(public userService:UserService){} + ngOnInit(){ + console.log("random"); + this.userService.getUsers(); + } +} + diff --git a/user-app/src/app/services/user.service.ts b/user-app/src/app/services/user.service.ts index 0160cc5..c00a1fe 100644 --- a/user-app/src/app/services/user.service.ts +++ b/user-app/src/app/services/user.service.ts @@ -1,5 +1,8 @@ import { Injectable } from '@angular/core'; import { User, UserDetail } from '../model/common.dto'; +import { HttpClient } from '@angular/common/http'; +import {Observable} from "rxjs"; + @Injectable({ providedIn: 'root', @@ -7,17 +10,26 @@ import { User, UserDetail } from '../model/common.dto'; export class UserService { baseUrl: string = 'https://jsonplaceholder.typicode.com/users'; userId: number; - users: User[] = []; + users; - constructor() {} + constructor(private http:HttpClient) {} userAleadyAdded(): boolean { return true; } - getUsers(): void {} + getUsers() { + this.http.get(this.baseUrl).subscribe((res)=>{ + console.log(res); + this.users=res; + }) + - getUserDetail(id: number) {} + } + + getUserDetail(id: number): Observable { + return this.http.get(this.baseUrl + '/' + id); + } addUser(user: UserDetail): void {}