diff --git a/src/main/webapp/src/app/service/basic-service.ts b/src/main/webapp/src/app/service/basic-service.ts new file mode 100644 index 0000000..ebf99f1 --- /dev/null +++ b/src/main/webapp/src/app/service/basic-service.ts @@ -0,0 +1,7 @@ +import {Observable} from 'rxjs'; + +export interface BasicService { + findAll(): Observable; + + findById(id: ID): Observable; +} diff --git a/src/main/webapp/src/app/service/crud-service.ts b/src/main/webapp/src/app/service/crud-service.ts new file mode 100644 index 0000000..b3cce6a --- /dev/null +++ b/src/main/webapp/src/app/service/crud-service.ts @@ -0,0 +1,14 @@ +import {Observable} from 'rxjs'; +import {BasicService} from './basic-service'; + +export interface CrudService extends BasicService { + findAll(): Observable; + + findById(id: ID): Observable; + + update(t: T): Observable; + + create(t: T): Observable; + + delete(id: number): Observable; +} diff --git a/src/main/webapp/src/app/service/group.service.ts b/src/main/webapp/src/app/service/group.service.ts new file mode 100644 index 0000000..e901d9c --- /dev/null +++ b/src/main/webapp/src/app/service/group.service.ts @@ -0,0 +1,36 @@ +import { Injectable } from '@angular/core'; +import {CrudService} from "./crud-service"; +import {Observable} from "rxjs"; +import {HttpClient} from "@angular/common/http"; +import {Group} from "../model/group"; + +@Injectable({ + providedIn: 'root' +}) +export class GroupService implements CrudService{ + + private apiUrl = 'api/group'; + + constructor(private http: HttpClient) { + } + + create(t: Group): Observable { + return this.http.post(this.apiUrl, t) + } + + delete(id: number): Observable { + return this.http.delete(`${this.apiUrl}/${id}`) + } + + findAll(): Observable { + return this.http.get(this.apiUrl) + } + + findById(id: number): Observable { + return this.http.get(`${this.apiUrl}/${id}`) + } + + update(t: Group): Observable { + return this.http.put(this.apiUrl, t) + } +} diff --git a/src/main/webapp/src/app/service/person.service.spec.ts b/src/main/webapp/src/app/service/person.service.spec.ts new file mode 100644 index 0000000..88fe19e --- /dev/null +++ b/src/main/webapp/src/app/service/person.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { PersonService } from './person.service'; + +describe('PersonService', () => { + let service: PersonService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(PersonService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/main/webapp/src/app/service/person.service.ts b/src/main/webapp/src/app/service/person.service.ts new file mode 100644 index 0000000..e9105be --- /dev/null +++ b/src/main/webapp/src/app/service/person.service.ts @@ -0,0 +1,36 @@ +import { Injectable } from '@angular/core'; +import {CrudService} from "./crud-service"; +import {Person} from "../model/person"; +import {Observable} from "rxjs"; +import {HttpClient} from "@angular/common/http"; + +@Injectable({ + providedIn: 'root' +}) +export class PersonService implements CrudService{ + + private apiUrl = 'api/person'; + + constructor(private http: HttpClient) { + } + + create(t: Person): Observable { + return this.http.post(this.apiUrl, t) + } + + delete(id: number): Observable { + return this.http.delete(`${this.apiUrl}/${id}`) + } + + findAll(): Observable { + return this.http.get(this.apiUrl) + } + + findById(id: number): Observable { + return this.http.get(`${this.apiUrl}/${id}`) + } + + update(t: Person): Observable { + return this.http.put(this.apiUrl, t) + } +}