{"version":3,"sources":["webpack:///./node_modules/@abaco/activities-module/src/modules/activities-module/api/TrackApi.ts"],"names":["TrackApi","http","rootPath","this","pk_cuaa","currentCampaign","trackFilter","getPaginatedTracks","offset","count","res","records","pagingParams","filters","track_id","push","plot_id","from","getTime","to","url","params","filter","sort","get","propsToDatePaged","data","getPaginatedGenericTracks","trackId","forEach","tr","propsToDate","selectedDimension","length","firstSegment","lastSegment","firstPoint","Feature","Point","readFeature","wkt","geometry","wkt_geometry","id","getGeometry","getFirstCoordinate","lastPoint","getLastCoordinate","unshift","attr","srs","writeFeature","result","Object","entries","entry","pkCuaa","subject_id"],"mappings":"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","file":"js/chunk-2d0da79e.39418705.js","sourcesContent":["import { readFeature, writeFeature } from '@abaco/map-web-module/src/modules/map-web-module/LayerBuilder';\nimport { HTTPClient, propsToDate, propsToDatePaged } from '@abaco/web-common/src/HTTP';\nimport { PagedResults, PagingParams } from '@abaco/web-common/src/Paging';\nimport { Track, TrackFilter, TrackPoint, TrackPossibleDimension, TrackSegment } from '../models/Track';\nimport LineString from \"ol/geom/LineString\";\nimport Feature from \"ol/Feature\";\nimport Point from \"ol/geom/Point\";\n\nexport default class TrackApi {\n private http: HTTPClient;\n private rootPath: string;\n\n constructor(http: HTTPClient, rootPath: string) {\n this.http = http;\n this.rootPath = rootPath;\n }\n\n public async getTracks(pk_cuaa: number, currentCampaign: number, trackFilter: TrackFilter): Promise{\n const res = await this.getPaginatedTracks(pk_cuaa, currentCampaign, trackFilter, {offset: 0, count: 300});\n return res.records;\n }\n\n public async getPaginatedTracks(pk_cuaa: number, currentCampaign: number, trackFilter: TrackFilter, pagingParams: PagingParams): Promise> {\n const filters: string[] = [];\n\n if (trackFilter.track_id) {\n filters.push(`track_id eq ${trackFilter.track_id}`);\n }\n if (trackFilter.plot_id) {\n filters.push(`plot_id eq ${trackFilter.plot_id}`);\n }\n if (trackFilter.from) {\n filters.push(`execution_date ge ${trackFilter.from.getTime()}`);\n }\n if (trackFilter.to) {\n filters.push(`execution_date le ${trackFilter.to.getTime()}`);\n }\n\n const url = `${this.rootPath}/v1/plots/subjects/${pk_cuaa}/${currentCampaign}/tracks`;\n const params = {\n offset: pagingParams.offset,\n count: pagingParams.count,\n filter: filters,\n sort: `-execution_date`\n }\n\n const res = await this.http.get(url, { params });\n propsToDatePaged(res.data, [\"track_details.start_track\", \"track_details.end_track\"])\n return res.data;\n }\n\n public async getGenericTracks(pk_cuaa: number, trackFilter: TrackFilter): Promise{\n const res = await this.getPaginatedGenericTracks(pk_cuaa, trackFilter, {offset: 0, count: 300});\n return res.records;\n }\n\n public async getPaginatedGenericTracks(pk_cuaa: number, trackFilter: TrackFilter, pagingParams: PagingParams): Promise>{\n const filters: string[] = [];\n\n if (trackFilter.plot_id) {\n filters.push(`plot_id eq ${trackFilter.plot_id}`);\n }\n if (trackFilter.from) {\n filters.push(`start_track ge ${trackFilter.from.getTime()}`);\n }\n if (trackFilter.to) {\n filters.push(`start_track le ${trackFilter.to.getTime()}`);\n }\n\n const url = `${this.rootPath}/v1/plots/subjects/${pk_cuaa}/tracks_all`;\n const params = {\n offset: pagingParams.offset,\n count: pagingParams.count,\n filter: filters,\n sort: `-start_track`\n }\n const res = await this.http.get(url, { params });\n propsToDatePaged(res.data, [\"track_details.start_track\", \"track_details.end_track\"])\n return res.data;\n }\n\n public async getTrackPoints(trackId: string): Promise {\n // trackId = \"mjd_trk_209781_8cf907c9-d2f0-467e-bd59-996ebaa29893_MjA5NzgxXzYwNjJjYWMzYWNjZTFiMTQ3NDQ3ZjM2ZQ\";\n // trackId = \"TS->path-id:1104-ac909f30-5411-4137-a3eb-96ae07d68b36\";\n const url = `${this.rootPath}/v1/plots/tracks/${trackId}/points`;\n const res = await this.http.get(url);\n res.data.forEach(tr => propsToDate(tr, ['dt_position']))\n return res.data;\n }\n\n\n // public async getTrackSegments(trackId: string): Promise{\n // const url = `${this.rootPath}/v1/plots/tracks/${trackId}/segments`;\n // const res = await this.http.get(url);\n // res.data.forEach(tr => propsToDate(tr, ['start_time', 'stop_time']));\n // return res.data;\n // }\n\n public async getTrackSegments(trackId: string, selectedDimension: string): Promise{\n const url = `/sitiagri-rest-api/api_basic/v1/plots/tracks/${trackId}/attrs/${selectedDimension}/segments_from_points`;\n const res = (await this.http.get(url)).data;\n\n if(res.length >= 1){\n const firstSegment = res[0];\n const lastSegment = res[res.length - 1];\n const firstPoint = new Feature(new Point((readFeature({wkt: firstSegment.geometry.wkt_geometry, id: \"start\"}).getGeometry() as LineString).getFirstCoordinate()));\n const lastPoint = new Feature(new Point((readFeature({wkt: lastSegment.geometry.wkt_geometry, id: \"end\"}).getGeometry() as LineString).getLastCoordinate()));\n res.unshift({attr: firstSegment.attr, geometry: {srs: firstSegment.geometry.srs, wkt_geometry: writeFeature(firstPoint)}});\n res.push({attr: lastSegment.attr, geometry: {srs: lastSegment.geometry.srs, wkt_geometry: writeFeature(lastPoint)}});\n }\n return res;\n }\n\n public async getPossibleDimensions(trackId: string): Promise{\n const url = `/sitiagri-rest-api/api_basic/v1/plots/tracks/${trackId}/attrs`;\n const res = await this.http.get(url);\n\n const result: string[] = [];\n Object.entries(res.data).forEach((entry) => {\n if(entry[1]){\n result.push(entry[0])\n }\n })\n return result;\n }\n\n public async canViewTracks(pkCuaa: number) {\n const res = await this.http.get(`/sitiagri-rest-api/api_basic/v1/user_registry/module_competencies/BEST_PRACTICE/SOGG_TRACKS_LINK`, {\n params: {\n subject_id: pkCuaa\n }\n })\n\n return res.data.result\n }\n\n}\n"],"sourceRoot":""}