Create a model and a service for User
This commit is contained in:
parent
3e02eb4abb
commit
e2a3332d82
@ -6,7 +6,7 @@ import { HttpModule } from "@angular/http";
|
|||||||
import { AppRoutingModule } from "./app-routing.module";
|
import { AppRoutingModule } from "./app-routing.module";
|
||||||
|
|
||||||
import { InMemoryWebApiModule } from "angular-in-memory-web-api";
|
import { InMemoryWebApiModule } from "angular-in-memory-web-api";
|
||||||
import { InMemoryDataService } from "./in-memory-data.service";
|
import { InMemoryDuckService } from "./in-memory-data.service";
|
||||||
|
|
||||||
import { AppComponent } from "./app.component";
|
import { AppComponent } from "./app.component";
|
||||||
import { DuckDetailComponent } from "./duck-detail.component";
|
import { DuckDetailComponent } from "./duck-detail.component";
|
||||||
@ -14,12 +14,13 @@ import { DashboardComponent } from "./dashboard.component";
|
|||||||
import { DucksComponent } from "./ducks.component";
|
import { DucksComponent } from "./ducks.component";
|
||||||
|
|
||||||
import { DuckService } from "./duck.service";
|
import { DuckService } from "./duck.service";
|
||||||
|
import { UserService } from "./user.service";
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
BrowserModule,
|
BrowserModule,
|
||||||
HttpModule,
|
HttpModule,
|
||||||
InMemoryWebApiModule.forRoot(InMemoryDataService),
|
InMemoryWebApiModule.forRoot(InMemoryDuckService),
|
||||||
AppRoutingModule
|
AppRoutingModule
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
@ -28,7 +29,10 @@ import { DuckService } from "./duck.service";
|
|||||||
DuckDetailComponent,
|
DuckDetailComponent,
|
||||||
DucksComponent
|
DucksComponent
|
||||||
],
|
],
|
||||||
providers: [ DuckService ],
|
providers: [
|
||||||
|
DuckService,
|
||||||
|
UserService
|
||||||
|
],
|
||||||
bootstrap: [ AppComponent ]
|
bootstrap: [ AppComponent ]
|
||||||
})
|
})
|
||||||
export class AppModule {}
|
export class AppModule {}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { InMemoryDbService } from "angular-in-memory-web-api";
|
import { InMemoryDbService } from "angular-in-memory-web-api";
|
||||||
|
|
||||||
export class InMemoryDataService implements InMemoryDbService {
|
export class InMemoryDuckService implements InMemoryDbService {
|
||||||
createDb() {
|
createDb() {
|
||||||
let ducks = [
|
let ducks = [
|
||||||
{
|
{
|
||||||
@ -18,3 +18,17 @@ export class InMemoryDataService implements InMemoryDbService {
|
|||||||
return {ducks};
|
return {ducks};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class InMemoryUserService implements InMemoryDbService {
|
||||||
|
createDb() {
|
||||||
|
let users = [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
username: 'epolger',
|
||||||
|
password: 'epolger'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
return {users};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -3,3 +3,9 @@ export class Duck {
|
|||||||
name: string;
|
name: string;
|
||||||
color: string;
|
color: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class User {
|
||||||
|
id: number;
|
||||||
|
username: string;
|
||||||
|
password: string;
|
||||||
|
}
|
||||||
|
47
app/user.service.ts
Normal file
47
app/user.service.ts
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
import { Injectable } from "@angular/core";
|
||||||
|
import { Headers, Http } from "@angular/http";
|
||||||
|
|
||||||
|
import "rxjs/add/operator/toPromise";
|
||||||
|
|
||||||
|
import { User } from "./models";
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class UserService {
|
||||||
|
private headers = new Headers({"Content-Type": "application/json"});
|
||||||
|
private usersUrl = 'app/users';
|
||||||
|
|
||||||
|
currentUser: User = null;
|
||||||
|
|
||||||
|
constructor(private http: Http) {}
|
||||||
|
|
||||||
|
getUsers(): Promise<User[]> {
|
||||||
|
return this.http.get(this.usersUrl)
|
||||||
|
.toPromise()
|
||||||
|
.then(response => response.json().data as User[])
|
||||||
|
.catch(this.handleError);
|
||||||
|
}
|
||||||
|
|
||||||
|
getUser(id: number): Promise<User> {
|
||||||
|
return this.getUsers()
|
||||||
|
.then(users => users.find(user => user.id === id));
|
||||||
|
}
|
||||||
|
|
||||||
|
create(username: string, password: string): Promise<User> {
|
||||||
|
return this.http.post(this.usersUrl,
|
||||||
|
JSON.stringify(
|
||||||
|
{
|
||||||
|
username: name,
|
||||||
|
password: password
|
||||||
|
}),
|
||||||
|
{headers: this.headers})
|
||||||
|
.toPromise()
|
||||||
|
.then(res => res.json().data)
|
||||||
|
.catch(this.handleError);
|
||||||
|
}
|
||||||
|
|
||||||
|
private handleError(error: any): Promise<any> {
|
||||||
|
console.error("An error occured", error);
|
||||||
|
|
||||||
|
return Promise.reject(error.message || error);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user