angular dataService
This commit is contained in:
		
							
								
								
									
										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; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Darko Luketic
					Darko Luketic