Newer
Older
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { User } from '../models/user.model';
interface IUserLogin {
username: string;
password: string;
}
@Injectable({
providedIn: 'root'
})
export class UserService {
userUrl = "api/user/"
constructor(private http: HttpClient) { }
* Get an user from the database by id.
*/
getUser(id: number): Promise<User> {
return new Promise<User>(
(resolve, reject) => {
this.get_user(id).subscribe((data: any) => {
try {
const user = new User(data.data[0]);
if (user.getUserId == 0) {
reject("Could not find User with id: " + id);
return;
}
resolve(user);
} catch (err: any) {
reject(err);
}
},
(err: any) => {
console.log(err.message);
reject(err);
});
}
);
}
private get_user(id: number) {
return this.http.get(this.userUrl + id);
}
/**
* Get all users from database.
*/
getAllUsers(): Promise<Array<User>> {
return new Promise<Array<User>>(
(resolve, reject) => {
this.get_all_users().subscribe((data: any) => {
try {
let outputUsers = []; // array of users
for (let user of data.data) {
outputUsers.push(new User(user));
if (user.getId == 0) {
reject("Could not deserialize User");
return;
}
}
resolve(outputUsers);
} catch (err: any) {
reject(err);
}
},
(err: any) => {
console.log(err.message);
reject(err);
});
}
);
}
private get_all_users() {
return this.http.get(this.userUrl);
}
/**
* Deletes an user from the database by id.
*/
deleteUser(id: number): Promise<User> {
return new Promise<User>(
(resolve, reject) => {
this.delete_user(id).subscribe((data: any) => {
try {
resolve(data);
} catch (err: any) {
reject(err);
}
},
(err: any) => {
console.log(err.message);
reject(err);
});
}
);
}
private delete_user(id: number) {
return this.http.delete(this.userUrl + id);
}
}