aboutsummaryrefslogtreecommitdiff
path: root/src/app/services
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/services')
-rw-r--r--src/app/services/comment.service.ts8
-rw-r--r--src/app/services/friend.service.ts44
-rw-r--r--src/app/services/language.service.ts4
-rw-r--r--src/app/services/post.service.ts6
-rw-r--r--src/app/services/profile-picture.service.ts32
-rw-r--r--src/app/services/rating.service.ts86
-rw-r--r--src/app/services/technology.service.ts2
-rw-r--r--src/app/services/user.service.ts54
8 files changed, 183 insertions, 53 deletions
diff --git a/src/app/services/comment.service.ts b/src/app/services/comment.service.ts
index c9dbf35..9839b01 100644
--- a/src/app/services/comment.service.ts
+++ b/src/app/services/comment.service.ts
@@ -2,7 +2,7 @@ import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Guid } from 'guid-typescript';
import { Observable } from 'rxjs';
-import { Comment } from 'src/models/comment';
+import { Comment } from 'src/models/comment.model';
import { AppConstants } from '../app-constants.module';
import { TokenService } from './token.service';
@@ -14,7 +14,7 @@ export class CommentService {
{ }
getDefaultComment(): Comment {
- return new Comment(Guid.createEmpty(), Guid.createEmpty(), 'Gosho', 'Trapov', 'gosho_trapov', 'Your opinion on my idea?', new Date());
+ return new Comment(Guid.createEmpty(), Guid.createEmpty(), '', '', '', '', new Date());
}
/* Requests from session storage */
@@ -55,7 +55,7 @@ export class CommentService {
getCommentRequest(id: Guid): Observable<object> {
const options = {
- params: new HttpParams().set('Id', id.toString())
+ params: new HttpParams().set('CommentId', id.toString())
};
return this._http.get(AppConstants.API_COMMENT_URL, options);
}
@@ -75,7 +75,7 @@ export class CommentService {
deleteCommentRequest(commentId: Guid, authToken: string): Observable<object> {
const options = {
- params: new HttpParams().set('Id', commentId.toString()),
+ params: new HttpParams().set('CommentId', commentId.toString()),
headers: new HttpHeaders().set('Authorization', 'Bearer ' + authToken)
};
return this._http.delete(AppConstants.API_COMMENT_URL, options);
diff --git a/src/app/services/friend.service.ts b/src/app/services/friend.service.ts
new file mode 100644
index 0000000..6821606
--- /dev/null
+++ b/src/app/services/friend.service.ts
@@ -0,0 +1,44 @@
+import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
+import { Injectable } from '@angular/core';
+import { Guid } from 'guid-typescript';
+import { Observable } from 'rxjs';
+import { AppConstants } from '../app-constants.module';
+import { TokenService } from './token.service';
+
+@Injectable({
+ providedIn: 'root'
+})
+export class FriendService {
+ constructor(private _http: HttpClient, private _tokenService: TokenService)
+ { }
+
+ postFriendWithSessionStorageRequest(friendUsername: string): Observable<object> {
+ const userId = this._tokenService.getUserIdFromSessionStorageToken();
+ const token = this._tokenService.getTokenFromSessionStorage();
+
+ return this.postFriendRequest(userId, token, friendUsername);
+ }
+
+ deleteFriendWithSessionStorageRequest(friendUsername: string): Observable<object> {
+ const userId = this._tokenService.getUserIdFromSessionStorageToken();
+ const token = this._tokenService.getTokenFromSessionStorage();
+
+ return this.deleteFriendRequest(userId, token, friendUsername);
+ }
+
+ postFriendRequest(userId: Guid, authToken: string, friendUsername: string): Observable<object> {
+ const options = {
+ params: new HttpParams().set('UserId', userId.toString()).set('FriendUsername', friendUsername),
+ headers: new HttpHeaders().set('Authorization', 'Bearer ' + authToken)
+ };
+ return this._http.post(AppConstants.API_FRIENDS_URL, {}, options);
+ }
+
+ deleteFriendRequest(userId: Guid, authToken: string, friendUsername: string): Observable<object> {
+ const options = {
+ params: new HttpParams().set('UserId', userId.toString()).set('FriendUsername', friendUsername),
+ headers: new HttpHeaders().set('Authorization', 'Bearer ' + authToken)
+ };
+ return this._http.delete(AppConstants.API_FRIENDS_URL, options);
+ }
+}
diff --git a/src/app/services/language.service.ts b/src/app/services/language.service.ts
index 15e241f..ec368da 100644
--- a/src/app/services/language.service.ts
+++ b/src/app/services/language.service.ts
@@ -2,7 +2,7 @@ import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Guid } from 'guid-typescript';
import { Observable } from 'rxjs';
-import { Language } from 'src/models/language';
+import { Language } from 'src/models/language.model';
import { AppConstants } from '../app-constants.module';
import { TokenService } from './token.service';
@@ -105,7 +105,7 @@ export class LanguageService {
deleteLanguageRequest(authToken: string, langId: Guid): Observable<object> {
const options = {
- params: new HttpParams().set('Id', langId.toString()),
+ params: new HttpParams().set('LanguageId', langId.toString()),
headers: new HttpHeaders().set('Authorization', 'Bearer ' + authToken)
};
return this._http.delete(AppConstants.API_LANGUAGE_URL, options);
diff --git a/src/app/services/post.service.ts b/src/app/services/post.service.ts
index 7b2a539..1a6e021 100644
--- a/src/app/services/post.service.ts
+++ b/src/app/services/post.service.ts
@@ -3,7 +3,7 @@ import { Injectable } from '@angular/core';
import * as FormData from 'form-data';
import { Guid } from 'guid-typescript';
import { Observable } from 'rxjs';
-import { Post } from 'src/models/post';
+import { Post } from 'src/models/post.model';
import { AppConstants } from '../app-constants.module';
import { TokenService } from './token.service';
@@ -15,7 +15,7 @@ export class PostService {
{ }
getDefaultPost(): Post {
- return new Post(Guid.createEmpty(), 'Gosho', 'Trapov', 'gosho_trapov', 'Your opinion on my idea?', new Date(), [], []);
+ return new Post(Guid.createEmpty(), '', '', '', '', new Date(), [], [], 0);
}
/* Requests from session storage */
@@ -78,7 +78,7 @@ export class PostService {
deletePostRequest(postId: Guid, authToken: string): Observable<object> {
const options = {
- params: new HttpParams().set('Id', postId.toString()),
+ params: new HttpParams().set('PostId', postId.toString()),
headers: new HttpHeaders().set('Authorization', 'Bearer ' + authToken)
};
return this._http.delete(AppConstants.API_POST_URL, options);
diff --git a/src/app/services/profile-picture.service.ts b/src/app/services/profile-picture.service.ts
new file mode 100644
index 0000000..8b9d0a3
--- /dev/null
+++ b/src/app/services/profile-picture.service.ts
@@ -0,0 +1,32 @@
+import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
+import { Injectable } from '@angular/core';
+import { Guid } from 'guid-typescript';
+import { Observable } from 'rxjs';
+import { AppConstants } from '../app-constants.module';
+import { TokenService } from './token.service';
+
+@Injectable({
+ providedIn: 'root'
+})
+export class ProfilePictureService {
+ constructor(private _http: HttpClient, private _tokenService: TokenService)
+ { }
+
+ putPictureWithSessionStorageRequest(newPicture: File): Observable<object> {
+ const userId = this._tokenService.getUserIdFromSessionStorageToken();
+ const token = this._tokenService.getTokenFromSessionStorage();
+
+ return this.putRatingRequest(userId, token, newPicture);
+ }
+
+ putRatingRequest(userId: Guid, authToken: string, newPicture: File): Observable<object> {
+ const options = {
+ params: new HttpParams().set('UserId', userId.toString()),
+ headers: new HttpHeaders().set('Authorization', 'Bearer ' + authToken)
+ };
+ const form = new FormData();
+ form.append('picture', newPicture);
+
+ return this._http.put(AppConstants.API_PROFILE_PICTURE_URL, form, options);
+ }
+}
diff --git a/src/app/services/rating.service.ts b/src/app/services/rating.service.ts
new file mode 100644
index 0000000..be35a81
--- /dev/null
+++ b/src/app/services/rating.service.ts
@@ -0,0 +1,86 @@
+import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
+import { Injectable } from '@angular/core';
+import { Guid } from 'guid-typescript';
+import { Observable } from 'rxjs';
+import { AppConstants } from '../app-constants.module';
+import { TokenService } from './token.service';
+
+
+@Injectable({
+ providedIn: 'root'
+})
+export class RatingService {
+ constructor(private _http: HttpClient, private _tokenService: TokenService)
+ { }
+
+ createRatingWithSessionStorageRequest(postId: Guid, isLike: boolean): Observable<object> {
+ const userId = this._tokenService.getUserIdFromSessionStorageToken();
+ const token = this._tokenService.getTokenFromSessionStorage();
+
+ return this.createRatingRequest(userId, token, postId, isLike);
+ }
+
+ putRatingWithSessionStorageRequest(postId: Guid, isLike: boolean): Observable<object> {
+ const userId = this._tokenService.getUserIdFromSessionStorageToken();
+ const token = this._tokenService.getTokenFromSessionStorage();
+
+ return this.putRatingRequest(userId, token, postId, isLike);
+ }
+
+ getRatingByUserAndPostWithSessionStorageRequest(postId: Guid): Observable<object> {
+ const userId = this._tokenService.getUserIdFromSessionStorageToken();
+ const token = this._tokenService.getTokenFromSessionStorage();
+
+ return this.getRatingByUserAndPostRequest(userId, token, postId);
+ }
+
+ deleteRatingFromSessionStorageRequest(ratingId: Guid): Observable<object> {
+ const userId = this._tokenService.getUserIdFromSessionStorageToken();
+ const token = this._tokenService.getTokenFromSessionStorage();
+
+ return this.deleteRatingRequest(userId, token, ratingId);
+ }
+
+ createRatingRequest(userId: Guid, authToken: string, postId: Guid, isLike: boolean): Observable<object> {
+ const options = {
+ params: new HttpParams().set('UserId', userId.toString()),
+ headers: new HttpHeaders().set('Authorization', 'Bearer ' + authToken)
+ };
+ const body = {
+ postId: postId.toString(),
+ isLike: isLike
+ };
+
+ return this._http.post(AppConstants.API_RATING_URL, body, options);
+ }
+
+ putRatingRequest(userId: Guid, authToken: string, postId: Guid, isLike: boolean): Observable<object> {
+ const options = {
+ params: new HttpParams().set('UserId', userId.toString()).set('PostId', postId.toString()),
+ headers: new HttpHeaders().set('Authorization', 'Bearer ' + authToken)
+ };
+ const body = {
+ isLike: isLike
+ };
+
+ return this._http.put(AppConstants.API_RATING_URL, body, options);
+ }
+
+ getRatingByUserAndPostRequest(userId: Guid, authToken: string, postId: Guid): Observable<object> {
+ const options = {
+ params: new HttpParams().set('UserId', userId.toString()).set('PostId', postId.toString()),
+ headers: new HttpHeaders().set('Authorization', 'Bearer ' + authToken)
+ };
+
+ return this._http.get(AppConstants.API_RATING_URL + '/GetByUserAndPost', options);
+ }
+
+ deleteRatingRequest(userId: Guid, authToken: string, ratingId: Guid): Observable<object> {
+ const options = {
+ params: new HttpParams().set('UserId', userId.toString()).set('RatingId', ratingId.toString()),
+ headers: new HttpHeaders().set('Authorization', 'Bearer ' + authToken)
+ };
+
+ return this._http.delete(AppConstants.API_RATING_URL, options);
+ }
+}
diff --git a/src/app/services/technology.service.ts b/src/app/services/technology.service.ts
index dbdc039..fcc3d4c 100644
--- a/src/app/services/technology.service.ts
+++ b/src/app/services/technology.service.ts
@@ -2,7 +2,7 @@ import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Guid } from 'guid-typescript';
import { Observable } from 'rxjs';
-import { Technology } from 'src/models/technology';
+import { Technology } from 'src/models/technology.model';
import { AppConstants } from '../app-constants.module';
import { TokenService } from './token.service';
diff --git a/src/app/services/user.service.ts b/src/app/services/user.service.ts
index 31862c4..690fff5 100644
--- a/src/app/services/user.service.ts
+++ b/src/app/services/user.service.ts
@@ -1,13 +1,15 @@
import { Injectable } from '@angular/core';
import { Guid } from 'guid-typescript';
-import { User } from '../../models/identity/user';
+import { User } from '../../models/identity/user.model';
import { FormGroup } from '@angular/forms';
import { AppConstants } from 'src/app/app-constants.module';
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
import { Observable } from 'rxjs';
-import { Role } from 'src/models/identity/role';
-import { Friend } from 'src/models/identity/friend';
+import { Role } from 'src/models/identity/role.model';
+import { Friend } from 'src/models/identity/friend.model';
import { TokenService } from './token.service';
+import { Language } from 'src/models/language.model';
+import { Technology } from 'src/models/technology.model';
@Injectable({
providedIn: 'root'
@@ -17,7 +19,7 @@ export class UserService {
{ }
getDefaultUser(): User {
- return new User(Guid.createEmpty(), 'gosho_trapov', 'Gosho', 'Trapov', 'gotra@bg.com', AppConstants.FALLBACK_PROFILE_ICON, [], [], [], []);
+ return new User(Guid.createEmpty(), '', '', '', '', AppConstants.FALLBACK_PROFILE_ICON, [], [], [], []);
}
/* Requests from session storage */
@@ -36,25 +38,11 @@ export class UserService {
return this.addFriendToUserRequest(userUserName, token, newFriendUserName);
}
- putUserFromSessionStorageRequest(updateUserFormGroup: FormGroup, userRoles: Role[], userFriends: Friend[]): Observable<object> {
+ putUserFromSessionStorageRequest(updateUserFormGroup: FormGroup, languages: Language[], technologies: Technology[], userRoles: Role[], userFriends: Friend[]): Observable<object> {
const userId = this._tokenService.getUserIdFromSessionStorageToken();
const token = this._tokenService.getTokenFromSessionStorage();
- return this.putUserRequest(userId, token, updateUserFormGroup, userRoles, userFriends);
- }
-
- putProfilePictureFromSessionStorageRequest(newPicture: File): Observable<object> {
- const userId = this._tokenService.getUserIdFromSessionStorageToken();
- const token = this._tokenService.getTokenFromSessionStorage();
-
- return this.putProfilePictureRequest(userId, token, newPicture);
- }
-
- putBareUserFromSessionStorageRequest(user: User, password: string): Observable<object> {
- const userId = this._tokenService.getUserIdFromSessionStorageToken();
- const token = this._tokenService.getTokenFromSessionStorage();
-
- return this.putBareUserRequest(userId, token, user, password);
+ return this.putUserRequest(userId, token, updateUserFormGroup, languages, technologies, userRoles, userFriends);
}
deleteUserFromSessionStorageRequest(): Observable<object> {
@@ -119,7 +107,7 @@ export class UserService {
return this._http.get(AppConstants.API_USER_URL + '/GetUser', options);
}
- putUserRequest(userId: Guid, authToken: string, updateUserFormGroup: FormGroup, userRoles: Role[], userFriends: Friend[]): Observable<object> {
+ putUserRequest(userId: Guid, authToken: string, updateUserFormGroup: FormGroup, languages: Language[], technologies: Technology[], userRoles: Role[], userFriends: Friend[]): Observable<object> {
const body = {
UserName: updateUserFormGroup.get('username')?.value,
Email: updateUserFormGroup.get('email')?.value,
@@ -128,19 +116,9 @@ export class UserService {
Password: updateUserFormGroup.get('password')?.value,
Roles: userRoles,
Friends: userFriends,
- Languages: updateUserFormGroup.get('languages')?.value,
- Technologies: updateUserFormGroup.get('technologies')?.value
- };
- const options = {
- params: new HttpParams().set('Id', userId.toString()),
- headers: new HttpHeaders().set('Authorization', 'Bearer ' + authToken)
+ Languages: languages,
+ Technologies: technologies
};
- return this._http.put(AppConstants.API_USER_URL, body, options);
- }
-
- putBareUserRequest(userId: Guid, authToken: string, user: User, password: string): Observable<object> {
- const body: object = user;
- Object.assign(body, { password: password });
const options = {
params: new HttpParams().set('Id', userId.toString()),
headers: new HttpHeaders().set('Authorization', 'Bearer ' + authToken)
@@ -148,16 +126,6 @@ export class UserService {
return this._http.put(AppConstants.API_USER_URL, body, options);
}
- putProfilePictureRequest(userId: Guid, authToken: string, newPicture: File): Observable<object> {
- const form = new FormData();
- form.append('picture', newPicture);
- const options = {
- params: new HttpParams().set('UserId', userId.toString()),
- headers: new HttpHeaders().set('Authorization', 'Bearer ' + authToken)
- };
- return this._http.put(AppConstants.API_USER_URL + '/ProfilePicture', form, options);
- }
-
deleteUserRequest(userId: Guid, authToken: string): Observable<object> {
const options = {
params: new HttpParams().set('Id', userId.toString()),