{"version":3,"file":"index-DvOmTip1.js","sources":["../../../app/assets/javascripts/app/resources/current_authenticated_user/building_followings/get_many/index.ts","../../../app/assets/javascripts/concepts/buildings/building_follow_button/index.ts"],"sourcesContent":["\n// region JS Imports\n\n// region External Modules\nimport Promise from \"bluebird\"\n// endregion External Modules\n\n// region Private Modules\nimport {\n q_ajax_3,\n ERROR_HANDLER_ACTIONS as AJAX_ERROR_HANDLER_ACTIONS,\n} from \"app/utils/q_ajax/q_ajax_3\"\n// endregion Private Modules\n\n// region Public Components\n// endregion Public Components\n\n// region Private Components\n// endregion Private Components\n\n// endregion JS Imports\n\n\n/* eslint-disable no-unused-vars */\nenum ResultTypeEnums {\n SUCCESS = \"SUCCESS\",\n NOT_SIGNED_IN = \"NOT_SIGNED_IN\",\n INVALID = \"INVALID\",\n SERVER_ERROR = \"SERVER_ERROR\",\n TOO_MANY_REQUEST = \"TOO_MANY_REQUEST\",\n}\n/* eslint-enable no-unused-vars */\n\nexport interface DataEntry {\n building_id: string,\n\n is_following_for_residential_content: boolean,\n is_following_for_commercial_content: boolean,\n}\n\ninterface PromiseResolvePayload {\n result_type: ResultTypeEnums,\n data?: DataEntry[],\n}\n\nconst get_many = (): Promise => {\n return Promise.resolve()\n .then(() => {\n return q_ajax_3(\n {\n url: \"/api/web_app/current_authenticated_user/building_followings\",\n method: \"GET\",\n dataType: \"json\",\n },\n {\n custom_error_handler: ({http_status_code}) => {\n if (http_status_code === 401) {\n return AJAX_ERROR_HANDLER_ACTIONS.STOP_RETRY\n }\n\n return AJAX_ERROR_HANDLER_ACTIONS.CONTINUE_RETRY\n },\n error_tracking_options: {\n endpoint_identifier: \"/api/web_app/current_authenticated_user/building_followings\",\n },\n },\n )\n })\n .then(({data}: {\n data: {\n data: {\n building_followings: DataEntry[]\n }\n }\n }): PromiseResolvePayload => {\n return (\n {\n result_type: ResultTypeEnums.SUCCESS,\n data: data.data.building_followings,\n }\n )\n })\n .catch((reason_or_error): PromiseResolvePayload => {\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 401:\n return ({result_type: ResultTypeEnums.NOT_SIGNED_IN})\n case 429:\n return ({result_type: ResultTypeEnums.TOO_MANY_REQUEST})\n default:\n return ({result_type: ResultTypeEnums.INVALID})\n }\n })\n}\n\nexport {\n get_many,\n ResultTypeEnums,\n}\n","\n// region JS Imports\n\n// region External Modules\nimport u from \"umbrellajs\"\n// endregion External Modules\n\n// Private Modules\nimport {\n captureMessage,\n} from \"app/error_reporting\"\n\nimport {\n get_many as get_current_authenticated_user_building_followings,\n ResultTypeEnums as GetCurrentAuthenticatedUserBuildingFollowingsTypes,\n} from \"app/resources/current_authenticated_user/building_followings/get_many/index\"\n// Private Modules\n\n// region Public Components\n// endregion Public Components\n\n// region Private Components\nimport { Factory } from \"./factory\"\n// endregion Private Components\n\n// endregion JS Imports\n\n\nconst CELL_CLASS_NAME = \"cell--buildings--following--button\"\nconst CELL_INITIALIZED_CLASS_NAME = `${CELL_CLASS_NAME}--js-spacious-initialized`\n\nconst init = () => {\n const elements = u(`.${CELL_CLASS_NAME}`)\n if (elements.length === 0) { return Promise.resolve() }\n\n return get_current_authenticated_user_building_followings()\n .then(({result_type, data}) => {\n switch (result_type) {\n case GetCurrentAuthenticatedUserBuildingFollowingsTypes.SUCCESS:\n case GetCurrentAuthenticatedUserBuildingFollowingsTypes.NOT_SIGNED_IN:\n case GetCurrentAuthenticatedUserBuildingFollowingsTypes.SERVER_ERROR:\n case GetCurrentAuthenticatedUserBuildingFollowingsTypes.TOO_MANY_REQUEST:\n return data || []\n default:\n captureMessage(\n `unexpected/unhandled result_type from get_current_authenticated_user_building_followings: <${result_type}>`,\n {\n source_file_path:\n \"concepts/buildings/building_follow_button\",\n }\n )\n // Still need to init elements\n return []\n }\n })\n .then((building_followings) => {\n elements.each((el) => {\n if (el.classList.contains(CELL_INITIALIZED_CLASS_NAME)) { return }\n el.classList.add(CELL_INITIALIZED_CLASS_NAME)\n\n Factory.create({\n container: el,\n\n building_followings: building_followings,\n })\n })\n })\n}\n\nconst onLoad = () => {\n return init()\n}\n\n\nexport {\n init,\n onLoad,\n}\n"],"names":["ResultTypeEnums","get_many","Promise","q_ajax_3","http_status_code","AJAX_ERROR_HANDLER_ACTIONS","data","reason_or_error","response","CELL_CLASS_NAME","CELL_INITIALIZED_CLASS_NAME","init","elements","u","get_current_authenticated_user_building_followings","result_type","GetCurrentAuthenticatedUserBuildingFollowingsTypes","captureMessage","building_followings","el","Factory","onLoad"],"mappings":"4LAwBA,IAAKA,GAAAA,IACHA,EAAA,QAAmB,UACnBA,EAAA,cAAmB,gBACnBA,EAAA,QAAmB,UACnBA,EAAA,aAAmB,eACnBA,EAAA,iBAAmB,mBALhBA,IAAAA,GAAA,CAAA,CAAA,EAqBL,MAAMC,EAAW,IACRC,EAAQ,UACd,KAAK,IACGC,EACL,CACE,IAAU,8DACV,OAAU,MACV,SAAU,MACZ,EACA,CACE,qBAAsB,CAAC,CAAC,iBAAAC,KAClBA,IAAqB,IAChBC,EAA2B,WAG7BA,EAA2B,eAEpC,uBAAwB,CACtB,oBAAqB,6DAAA,CACvB,CAEJ,CACD,EACA,KAAK,CAAC,CAAC,KAAAC,MAQJ,CACE,YAAa,UACb,KAAaA,EAAK,KAAK,mBACzB,EAEH,EACA,MAAOC,GAA2C,CACjD,GAAIA,aAA2B,MACvB,MAAAA,EAGF,KAAA,CAAE,SAAAC,GAAaD,EACrB,OAAQC,EAAS,OAAQ,CACvB,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACK,MAAA,CAAC,YAAa,cAA4B,EACpD,IAAK,KACK,MAAA,CAAC,YAAa,eAA6B,EACrD,IAAK,KACK,MAAA,CAAC,YAAa,kBAAgC,EACxD,QACU,MAAA,CAAC,YAAa,SAAuB,CAAA,CACjD,CACD,ECzEGC,EAAkB,qCAClBC,EAA8B,GAAG,OAAAD,EAAe,6BAEhDE,EAAO,IAAM,CACjB,MAAMC,EAAWC,EAAE,IAAI,OAAAJ,EAAiB,EACpC,OAAAG,EAAS,SAAW,EAAY,QAAQ,QAAQ,EAE7CE,EACN,EAAA,KAAK,CAAC,CAAC,YAAAC,EAAa,KAAAT,KAAU,CAC7B,OAAQS,EAAa,CACnB,KAAKC,EAAmD,QACxD,KAAKA,EAAmD,cACxD,KAAKA,EAAmD,aACxD,KAAKA,EAAmD,iBACtD,OAAOV,GAAQ,CAAC,EAClB,QACE,OAAAW,EACE,8FAA8F,OAAAF,EAAW,KACzG,CACE,iBACE,2CAAA,CAEN,EAEO,CAAC,CAAA,CACZ,CACD,EACA,KAAMG,GAAwB,CACpBN,EAAA,KAAMO,GAAO,CAChBA,EAAG,UAAU,SAAST,CAA2B,IAClDS,EAAA,UAAU,IAAIT,CAA2B,EAE5CU,EAAQ,OAAO,CACb,UAAWD,EAEX,oBAAAD,CAAA,CACD,EAAA,CACF,CAAA,CACF,CACH,EAEMG,EAAS,IACNV,EAAK"}