accountant-ui/src/accounts/account.service.ts
2017-07-16 10:45:27 +02:00

47 lines
1.1 KiB
TypeScript

// vim: set tw=80 ts=2 sw=2 sts=2 :
import { Injectable } from '@angular/core';
import { Http, Headers, RequestOptions, Response } from '@angular/http';
import { Observable } from 'rxjs/Rx';
import { Logger } from "@nsalaun/ng-logger";
import { Restangular } from "ngx-restangular";
import { Account } from './account';
@Injectable()
export class AccountService {
private url = '/api/account/';
constructor(
private logger: Logger,
private restangular: Restangular) {}
private all() {
return this.restangular.all('account');
}
private one(id: number) {
return this.restangular.one('account', id);
}
query(): Observable<Account[]> {
return this.all().getList();
}
get(id: number): Observable<Account> {
return this.one(id).get();
}
create(account: Account): Observable<Account> {
return this.all().post(account);
}
update(account: Account): Observable<Account> {
return this.one(account.id).post(null, account);
}
delete(account: Account): Observable<Account> {
return this.one(account.id).delete();
}
}