From 0abe398de867368e1b1d9fc4bd6cd3b4e83cb0b6 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sun, 31 Jan 2021 09:12:17 +0200 Subject: Added roles and friends to user model; updating now sends user's roles and friends --- .../profile-settings/profile-settings.component.ts | 2 +- .../src/app/services/user.service.ts | 15 ++++++++------- src/DevHive.Angular/src/models/identity/friend.ts | 3 +++ src/DevHive.Angular/src/models/identity/role.ts | 3 +++ src/DevHive.Angular/src/models/identity/user.ts | 22 +++++++++++++++++++++- 5 files changed, 36 insertions(+), 9 deletions(-) create mode 100644 src/DevHive.Angular/src/models/identity/friend.ts create mode 100644 src/DevHive.Angular/src/models/identity/role.ts (limited to 'src/DevHive.Angular') diff --git a/src/DevHive.Angular/src/app/components/profile-settings/profile-settings.component.ts b/src/DevHive.Angular/src/app/components/profile-settings/profile-settings.component.ts index 1989a4d..83a5501 100644 --- a/src/DevHive.Angular/src/app/components/profile-settings/profile-settings.component.ts +++ b/src/DevHive.Angular/src/app/components/profile-settings/profile-settings.component.ts @@ -165,7 +165,7 @@ export class ProfileSettingsComponent implements OnInit { this.patchLanguagesControl(); this.patchTechnologiesControl(); - this._userService.putUserFromSessionStorageRequest(this.updateUserFormGroup).subscribe( + this._userService.putUserFromSessionStorageRequest(this.updateUserFormGroup, this.user.roles, this.user.friends).subscribe( res => this._successBar.showMsg('Profile updated successfully!'), (err: HttpErrorResponse) => this._errorBar.showError(err) ); diff --git a/src/DevHive.Angular/src/app/services/user.service.ts b/src/DevHive.Angular/src/app/services/user.service.ts index 6badf94..128e94b 100644 --- a/src/DevHive.Angular/src/app/services/user.service.ts +++ b/src/DevHive.Angular/src/app/services/user.service.ts @@ -8,6 +8,8 @@ import { FormGroup } from '@angular/forms'; import { AppConstants } from 'src/app/app-constants.module'; import {HttpClient, HttpErrorResponse, HttpHeaders, HttpParams} from '@angular/common/http'; import {Observable} from 'rxjs'; +import {Role} from 'src/models/identity/role'; +import {Friend} from 'src/models/identity/friend'; @Injectable({ providedIn: 'root' @@ -16,7 +18,7 @@ export class UserService { constructor(private http: HttpClient) { } getDefaultUser(): User { - return new User(Guid.createEmpty(), 'gosho_trapov', 'Gosho', 'Trapov', 'gotra@bg.com', AppConstants.FALLBACK_PROFILE_ICON, new Array(), new Array()); + return new User(Guid.createEmpty(), 'gosho_trapov', 'Gosho', 'Trapov', 'gotra@bg.com', AppConstants.FALLBACK_PROFILE_ICON, [], [], [], []); } getUserIdFromSessionStorageToken(): Guid { @@ -38,12 +40,12 @@ export class UserService { return this.getUserRequest(userCred.ID, jwt.token); } - putUserFromSessionStorageRequest(updateUserFormGroup: FormGroup): Observable { + putUserFromSessionStorageRequest(updateUserFormGroup: FormGroup, userRoles: Role[], userFriends: Friend[]): Observable { // Get the token and userid from session storage const jwt: IJWTPayload = { token: sessionStorage.getItem('UserCred') ?? '' }; const userCred = jwt_decode(jwt.token); - return this.putUserRequest(userCred.ID, jwt.token, updateUserFormGroup); + return this.putUserRequest(userCred.ID, jwt.token, updateUserFormGroup, userRoles, userFriends); } deleteUserFromSessionStorageRequest(): Observable { @@ -93,16 +95,15 @@ export class UserService { return this.http.get(AppConstants.API_USER_URL + '/GetUser', options); } - putUserRequest(userId: Guid, authToken: string, updateUserFormGroup: FormGroup): Observable { + putUserRequest(userId: Guid, authToken: string, updateUserFormGroup: FormGroup, userRoles: Role[], userFriends: Friend[]): Observable { const body = { UserName: updateUserFormGroup.get('username')?.value, Email: updateUserFormGroup.get('email')?.value, FirstName: updateUserFormGroup.get('firstName')?.value, LastName: updateUserFormGroup.get('lastName')?.value, Password: updateUserFormGroup.get('password')?.value, - // TODO: make the following fields dynamically selectable - Roles: [ { Name: 'User' } ], - Friends: [], + Roles: userRoles, + Friends: userFriends, Languages: updateUserFormGroup.get('languages')?.value, Technologies: updateUserFormGroup.get('technologies')?.value }; diff --git a/src/DevHive.Angular/src/models/identity/friend.ts b/src/DevHive.Angular/src/models/identity/friend.ts new file mode 100644 index 0000000..22290cd --- /dev/null +++ b/src/DevHive.Angular/src/models/identity/friend.ts @@ -0,0 +1,3 @@ +export class Friend { + public userName: string; +} diff --git a/src/DevHive.Angular/src/models/identity/role.ts b/src/DevHive.Angular/src/models/identity/role.ts new file mode 100644 index 0000000..132b0b0 --- /dev/null +++ b/src/DevHive.Angular/src/models/identity/role.ts @@ -0,0 +1,3 @@ +export class Role { + public name: string; +} diff --git a/src/DevHive.Angular/src/models/identity/user.ts b/src/DevHive.Angular/src/models/identity/user.ts index 045d1d9..f7b922c 100644 --- a/src/DevHive.Angular/src/models/identity/user.ts +++ b/src/DevHive.Angular/src/models/identity/user.ts @@ -1,6 +1,8 @@ import { Guid } from 'guid-typescript'; import {Language} from '../language'; import {Technology} from '../technology'; +import {Friend} from './friend'; +import {Role} from './role'; export class User { private _id : Guid; @@ -11,15 +13,19 @@ export class User { private _imageUrl : string; private _languages: Language[]; private _technologies: Technology[]; + private _roles: Role[]; + private _friends: Friend[]; - constructor(id: Guid, userName: string, firstName: string, lastName: string, email: string, imageUrl: string, languages: Language[], technologies: Technology[]) { + constructor(id: Guid, userName: string, firstName: string, lastName: string, email: string, imageUrl: string, languages: Language[], technologies: Technology[], roles: Role[], friends: Friend[]) { this.id = id; this.userName = userName; this.firstName = firstName; this.lastName = lastName; this.email = email; this.imageUrl = imageUrl; + this.languages = languages; this.technologies = technologies; + this.roles = roles; } public get id(): Guid { @@ -77,4 +83,18 @@ export class User { public set technologies(v: Technology[]) { this._technologies = v; } + + public get roles(): Role[] { + return this._roles; + } + public set roles(v: Role[]) { + this._roles = v; + } + + public get friends(): Friend[] { + return this._friends; + } + public set friends(v: Friend[]) { + this._friends = v; + } } -- cgit v1.2.3