import { BaseAPI } from '../common/BaseApi'; import { OldPaginationParams, OldPaginationResponse, UnlApiConfig } from '../models'; import { ClaimRequest } from './models/ClaimRequest'; import { Claim } from './models/Claim'; import { BoundingBox } from './models'; /** * ClaimApi class contains all the methods related to claiming locations. * @class ClaimApi * @extends {BaseAPI} */ export default class ClaimApi extends BaseAPI { constructor(configuration: UnlApiConfig) { super(configuration); } /** * Create a new claim. * * @param {ClaimRequest} claimRequest ClaimRequest object which represent the new claim to be created. * @returns {Promise} A promise that, in case of success, returns the newly created claim object. * @memberof ClaimApi */ public create(claimRequest: ClaimRequest): Promise { return this.restClient.post('claiming', {}, claimRequest); } /** * Get all claims. * @returns {Promise} A promise that, in case of success, returns an array of Claim objects. * @memberof ClaimApi */ public getAll(): Promise { return this.restClient.get('claiming'); } /** * Get a claim by id. * * @param {string} claimId Id of the requested claim. * @return {Promise} A promise that, in case of success, returns the requested claim object. * @memberof ClaimApi */ public getById(claimId: string): Promise { const pathParamMap = { claim_id: claimId, }; return this.restClient.get('claiming/{claim_id}', pathParamMap); } /** * Get all claims within a bounding box. * * @param {BoundingBox} boundingBox A bounding box to get the claims from. * @returns {Promise>} A promise that, in case of success, returns an array of all the claims within the specified bounding box, wrapped around a OldPaginationResponse object. * @memberof ClaimApi */ public getInBoundingBox( boundingBox: BoundingBox, paginationParams?: OldPaginationParams ): Promise> { const stringBoundingBox = `${boundingBox.s},${boundingBox.n},${boundingBox.w},${boundingBox.e}`; const pathParamMap = { bbox: stringBoundingBox, }; return this.restClient.get>( 'claiming/search/{bbox}', pathParamMap, paginationParams ); } /** * Update a claim. * * @param {string} claimId Id of the claim to be updated. * @param {ClaimRequest} claimRequest ClaimRequest object which represents the updated claim. * @returns {Promise} A promise that, in case of success, returns the updated claim object. * @memberof ClaimApi */ public update(claimId: string, claimRequest: ClaimRequest): Promise { const pathParamMap = { claim_id: claimId, }; return this.restClient.put('claiming/{claim_id}', pathParamMap, claimRequest); } /** * Delete a claim. * * @param {string} claimId Id of the claim to be deleted * @returns {Promise} A promise that, in case of success, returns the deleted claim object. * @memberof ClaimApi */ public delete(claimId: string): Promise { const pathParamMap = { claim_id: claimId, }; return this.restClient.delete('claiming/{claim_id}', pathParamMap); } }