{"version":3,"mappings":"kIAaK,IAAAA,OACHA,EAAA,QAAqB,UACrBA,EAAA,mBAAqB,qBACrBA,EAAA,eAAqB,iBACrBA,EAAA,aAAqB,eAJlBA,OAAA,IA6BC,MAAAC,EAAWC,GACRC,EAAQ,QAAAC,EAAA,IACb,OACE,wBACF,OAED,KAAMC,GACEC,EACL,CAEE,IAAKD,EAAO,iCAAiC,CAC3C,GAAI,mBAAmBH,EAAO,EAAE,EACjC,EACD,OAAU,MACV,SAAU,MACZ,EACA,CACE,qBAAsB,CAAC,CAAC,iBAAAK,KAClBA,IAAqB,IAChBC,EAA2B,WAEhCD,IAAqB,IAChBC,EAA2B,WAG7BA,EAA2B,cACpC,CAEJ,CACD,EACA,KAAK,CAAC,CAAC,KAAAC,MAEJ,CACE,YAAa,UAEb,KAAM,CACJ,GAAIA,EAAK,KAAK,GAEd,UAAwBA,EAAK,KAAK,UAClC,sBAAwBA,EAAK,KAAK,sBAElC,0BAA8BA,EAAK,KAAK,0BACxC,4BAA8BA,EAAK,KAAK,4BAExC,uBAA8BA,EAAK,KAAK,uBACxC,uBAA8BA,EAAK,KAAK,uBACxC,uBAA8BA,EAAK,KAAK,uBAExC,sBAA8BA,EAAK,KAAK,sBAE5C,EAEH,EACA,MAAOC,GAAoB,CAC1B,GAAIA,aAA2B,MACvB,MAAAA,EAGF,MAAE,SAAAC,GAAaD,EACrB,OAAQC,EAAS,OAAQ,CACvB,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACK,OAAC,YAAa,cAA4B,EACpD,IAAK,KACK,OAAC,YAAa,oBAAkC,EAC1D,IAAK,KACK,OAAC,YAAa,oBAAkC,EAC1D,QACU,OAAC,YAAa,gBAA8B,EACxD,CACD","names":["ResultTypeEnums","get_one","inputs","Promise","__vitePreload","Routes","q_ajax_3","http_status_code","AJAX_ERROR_HANDLER_ACTIONS","data","reason_or_error","response"],"ignoreList":[],"sources":["../../../app/assets/javascripts/app/resources/listings/get_one/index.ts"],"sourcesContent":["\nimport Promise from \"plugins/bluebird\"\n\nimport {\n q_ajax_3,\n ERROR_HANDLER_ACTIONS as AJAX_ERROR_HANDLER_ACTIONS,\n} from \"app/utils/q_ajax/q_ajax_3\"\n\ninterface Inputs {\n id: string | number,\n}\n\n/* eslint-disable no-unused-vars */\nenum ResultTypeEnums {\n SUCCESS = \"SUCCESS\",\n RESOURCE_NOT_FOUND = \"RESOURCE_NOT_FOUND\",\n INPUTS_INVALID = \"INPUTS_INVALID\",\n SERVER_ERROR = \"SERVER_ERROR\",\n}\n/* eslint-enable no-unused-vars */\n\ninterface ListingDetails {\n id: string,\n\n is_rental: boolean,\n is_commercial_listing: boolean,\n\n is_for_serviced_apartment: boolean,\n for_overseas_marketing_only: boolean,\n\n is_for_business_center: boolean,\n is_for_serviced_office: boolean,\n is_for_coworking_space: boolean,\n\n is_for_coliving_space: boolean,\n}\n\ninterface PromiseResolvePayload {\n result_type: ResultTypeEnums,\n data?: ListingDetails,\n}\n\nconst get_one = (inputs: Inputs): Promise<PromiseResolvePayload> => {\n return Promise.resolve(\n import(\n \"plugins/js-routes\"\n )\n )\n .then((Routes) => {\n return q_ajax_3(\n {\n // Routes don't encode input automatically\n url: Routes.get_one_api_web_app_listing_path({\n id: encodeURIComponent(inputs.id),\n }),\n method: \"GET\",\n dataType: \"json\",\n },\n {\n custom_error_handler: ({http_status_code}) => {\n if (http_status_code === 404) {\n return AJAX_ERROR_HANDLER_ACTIONS.STOP_RETRY\n }\n if (http_status_code === 422) {\n return AJAX_ERROR_HANDLER_ACTIONS.STOP_RETRY\n }\n\n return AJAX_ERROR_HANDLER_ACTIONS.CONTINUE_RETRY\n },\n },\n )\n })\n .then(({data}) => {\n return (\n {\n result_type: ResultTypeEnums.SUCCESS,\n\n data: {\n id: data.data.id,\n\n is_rental: data.data.is_rental,\n is_commercial_listing: data.data.is_commercial_listing,\n\n is_for_serviced_apartment: data.data.is_for_serviced_apartment,\n for_overseas_marketing_only: data.data.for_overseas_marketing_only,\n\n is_for_business_center: data.data.is_for_business_center,\n is_for_serviced_office: data.data.is_for_serviced_office,\n is_for_coworking_space: data.data.is_for_coworking_space,\n\n is_for_coliving_space: data.data.is_for_coliving_space,\n },\n }\n )\n })\n .catch((reason_or_error) => {\n if (reason_or_error instanceof Error) {\n throw reason_or_error\n }\n\n const { response } = reason_or_error\n switch (response.status) {\n case 500:\n case 502:\n case 503:\n case 504:\n return ({result_type: ResultTypeEnums.SERVER_ERROR})\n case 404:\n return ({result_type: ResultTypeEnums.RESOURCE_NOT_FOUND})\n case 422:\n return ({result_type: ResultTypeEnums.RESOURCE_NOT_FOUND})\n default:\n return ({result_type: ResultTypeEnums.INPUTS_INVALID})\n }\n })\n}\n\nexport {\n get_one,\n ResultTypeEnums,\n}\n"],"file":"assets/index-DiSGSbNo.js"}