angular dataService
This commit is contained in:
parent
938a7e7789
commit
7e83d3fb95
15
angular/src/app/services/data.service.spec.ts
Normal file
15
angular/src/app/services/data.service.spec.ts
Normal file
@ -0,0 +1,15 @@
|
||||
import { TestBed, inject } from '@angular/core/testing';
|
||||
|
||||
import { DataService } from './data.service';
|
||||
|
||||
describe('DataService', () => {
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({
|
||||
providers: [DataService]
|
||||
});
|
||||
});
|
||||
|
||||
it('should be created', inject([DataService], (service: DataService) => {
|
||||
expect(service).toBeTruthy();
|
||||
}));
|
||||
});
|
204
angular/src/app/services/data.service.ts
Normal file
204
angular/src/app/services/data.service.ts
Normal file
@ -0,0 +1,204 @@
|
||||
import {Injectable} from '@angular/core';
|
||||
import {HttpClient, HttpParams} from '@angular/common/http';
|
||||
import {Observable} from 'rxjs/Observable';
|
||||
|
||||
@Injectable()
|
||||
export class DataService {
|
||||
|
||||
private rootURL = '/api/v1/data/';
|
||||
|
||||
constructor(private http: HttpClient) {
|
||||
}
|
||||
|
||||
public list(p: DataParams): Observable<Data[]> {
|
||||
let params = new HttpParams();
|
||||
if (p.start !== undefined) {
|
||||
params = params.append('start', p.start.toString());
|
||||
}
|
||||
if (p.limit !== undefined) {
|
||||
params = params.append('limit', p.limit.toString());
|
||||
}
|
||||
if (p.sort !== undefined) {
|
||||
params = params.append('sort', p.sort);
|
||||
}
|
||||
|
||||
// string
|
||||
if (p.nameQuery !== undefined) {
|
||||
params = params.append('name', '1');
|
||||
params = params.append('name.operation', p.nameQuery.operation);
|
||||
params = params.append('name.query', p.nameQuery.query);
|
||||
if (p.nameQuery.options !== undefined) {
|
||||
params = params.append('name.options', p.nameQuery.options);
|
||||
}
|
||||
}
|
||||
|
||||
// string
|
||||
if (p.addressQuery !== undefined) {
|
||||
params = params.append('address', '1');
|
||||
params = params.append('address.operation', p.addressQuery.operation);
|
||||
params = params.append('address.query', p.addressQuery.query);
|
||||
if (p.addressQuery.options !== undefined) {
|
||||
params = params.append('address.options', p.addressQuery.options);
|
||||
}
|
||||
}
|
||||
|
||||
// string
|
||||
if (p.locationQuery !== undefined) {
|
||||
params = params.append('location', '1');
|
||||
params = params.append('location.operation', p.locationQuery.operation);
|
||||
params = params.append('location.query', p.locationQuery.query);
|
||||
if (p.locationQuery.options !== undefined) {
|
||||
params = params.append('location.options', p.locationQuery.options);
|
||||
}
|
||||
}
|
||||
|
||||
// number
|
||||
if (p.ageQuery !== undefined) {
|
||||
params = params.append('age', '1');
|
||||
params = params.append('age.operation', p.ageQuery.operation);
|
||||
if (p.ageQuery.from !== undefined) {
|
||||
params = params.append('age.from', p.ageQuery.from.toString());
|
||||
}
|
||||
if (p.ageQuery.to !== undefined) {
|
||||
params = params.append('age.to', p.ageQuery.to.toString());
|
||||
}
|
||||
}
|
||||
|
||||
// number
|
||||
if (p.priceQuery !== undefined) {
|
||||
params = params.append('price', '1');
|
||||
params = params.append('price.operation', p.priceQuery.operation);
|
||||
if (p.priceQuery.from !== undefined) {
|
||||
params = params.append('price.from', p.priceQuery.from.toString());
|
||||
}
|
||||
if (p.priceQuery.to !== undefined) {
|
||||
params = params.append('price.to', p.priceQuery.to.toString());
|
||||
}
|
||||
}
|
||||
|
||||
// bool
|
||||
if (p.enabledQuery !== undefined) {
|
||||
params = params.append('enabled', '1');
|
||||
if (p.enabledQuery.query) {
|
||||
params = params.append('enabled.query', 'true');
|
||||
} else {
|
||||
params = params.append('enabled.query', 'false');
|
||||
}
|
||||
}
|
||||
|
||||
return this.http.get<Data[]>(this.rootURL, {params: params});
|
||||
}
|
||||
|
||||
public find(p: DataParams): Observable<Data> {
|
||||
let params = new HttpParams();
|
||||
|
||||
// if
|
||||
if (p.idQuery !== undefined) {
|
||||
params = params.append('id', '1');
|
||||
params = params.append('id.query', p.idQuery.query);
|
||||
}
|
||||
|
||||
// string
|
||||
if (p.nameQuery !== undefined) {
|
||||
params = params.append('name', '1');
|
||||
params = params.append('name.operation', p.nameQuery.operation);
|
||||
params = params.append('name.query', p.nameQuery.query);
|
||||
if (p.nameQuery.options !== undefined) {
|
||||
params = params.append('name.options', p.nameQuery.options);
|
||||
}
|
||||
}
|
||||
|
||||
// string
|
||||
if (p.addressQuery !== undefined) {
|
||||
params = params.append('address', '1');
|
||||
params = params.append('address.operation', p.addressQuery.operation);
|
||||
params = params.append('address.query', p.addressQuery.query);
|
||||
if (p.addressQuery.options !== undefined) {
|
||||
params = params.append('address.options', p.addressQuery.options);
|
||||
}
|
||||
}
|
||||
|
||||
// string
|
||||
if (p.locationQuery !== undefined) {
|
||||
params = params.append('location', '1');
|
||||
params = params.append('location.operation', p.locationQuery.operation);
|
||||
params = params.append('location.query', p.locationQuery.query);
|
||||
if (p.locationQuery.options !== undefined) {
|
||||
params = params.append('location.options', p.locationQuery.options);
|
||||
}
|
||||
}
|
||||
|
||||
// number
|
||||
if (p.ageQuery !== undefined) {
|
||||
params = params.append('age', '1');
|
||||
params = params.append('age.operation', p.ageQuery.operation);
|
||||
if (p.ageQuery.from !== undefined) {
|
||||
params = params.append('age.from', p.ageQuery.from.toString());
|
||||
}
|
||||
if (p.ageQuery.to !== undefined) {
|
||||
params = params.append('age.to', p.ageQuery.to.toString());
|
||||
}
|
||||
}
|
||||
|
||||
// number
|
||||
if (p.priceQuery !== undefined) {
|
||||
params = params.append('price', '1');
|
||||
params = params.append('price.operation', p.priceQuery.operation);
|
||||
if (p.priceQuery.from !== undefined) {
|
||||
params = params.append('price.from', p.priceQuery.from.toString());
|
||||
}
|
||||
if (p.priceQuery.to !== undefined) {
|
||||
params = params.append('price.to', p.priceQuery.to.toString());
|
||||
}
|
||||
}
|
||||
|
||||
// bool
|
||||
if (p.enabledQuery !== undefined) {
|
||||
params = params.append('enabled', '1');
|
||||
if (p.enabledQuery.query) {
|
||||
params = params.append('enabled.query', 'true');
|
||||
} else {
|
||||
params = params.append('enabled.query', 'false');
|
||||
}
|
||||
}
|
||||
|
||||
return this.http.get<Data>(this.rootURL + '1', {params: params});
|
||||
}
|
||||
|
||||
public create(m: Data) {
|
||||
return this.http.post(this.rootURL, m);
|
||||
}
|
||||
|
||||
public updateId(id: string, m: Data) {
|
||||
return this.http.put(this.rootURL + id, m);
|
||||
}
|
||||
|
||||
public removeId(id: string) {
|
||||
return this.http.delete(this.rootURL + id);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class DataParams {
|
||||
start?: number;
|
||||
limit?: number;
|
||||
sort?: string;
|
||||
|
||||
idQuery?: { query: string };
|
||||
nameQuery?: { operation: string, query: string, options?: string };
|
||||
addressQuery?: { operation: string, query: string, options?: string };
|
||||
locationQuery?: { operation: string, query: string, options?: string };
|
||||
ageQuery?: { operation: string, from?: number, to?: number };
|
||||
priceQuery?: { operation: string, from?: number, to?: number };
|
||||
enabledQuery?: { query: boolean };
|
||||
}
|
||||
|
||||
export class Data {
|
||||
id: string;
|
||||
name: string;
|
||||
address: string;
|
||||
location: string;
|
||||
age?: number;
|
||||
price?: number;
|
||||
enabled: boolean;
|
||||
}
|
Loading…
Reference in New Issue
Block a user