{ "version": 3, "sources": ["../javascripts/actions/ad-subscription.ts"], "sourcesContent": ["import type { Dispatch as ReduxDispatch } from '@reduxjs/toolkit';\n\nimport type { SubscriptionAdvertisement } from '../@types/AdvertismentSubscription';\nimport type { BaseAction } from '../@types/actions';\nimport * as http from '../Http';\nimport {\n buildAuthorizedDeleteRequest,\n buildAuthorizedGetRequest,\n buildAuthorizedPostRequest,\n} from '../Http/requestTemplates';\nimport type { RootState } from '../reducers';\nimport requestCache from '../utils/request-cache';\n\nexport const REQ_AD_SUBSCRIPTION_LIST = 'REQ/AD_SUBSCRIPTION_LIST';\nexport const RCV_AD_SUBSCRIPTION_LIST = 'RCV/AD_SUBSCRIPTION_LIST';\ntype REQ_AD_SUBSCRIPTION_LIST_TYPE = BaseAction;\ntype RCV_AD_SUBSCRIPTION_LIST_TYPE = BaseAction & {\n response: SubscriptionAdvertisement[];\n};\n\nexport const REQ_CREATE_AD_SUBSCRIPTION = 'REQ/CREATE_AD_SUBSCRIPTION';\nexport const RCV_CREATE_AD_SUBSCRIPTION = 'RCV/CREATE_AD_SUBSCRIPTION';\ntype REQ_CREATE_AD_SUBSCRIPTION_TYPE = BaseAction;\ntype RCV_CREATE_AD_SUBSCRIPTION_TYPE = BaseAction & {\n response: SubscriptionAdvertisement;\n};\n\nexport const REQ_REMOVE_AD_SUBSCRIPTION = 'REQ/REMOVE_AD_SUBSCRIPTION';\nexport const RCV_REMOVE_AD_SUBSCRIPTION = 'RCV/REMOVE_AD_SUBSCRIPTION';\ntype REQ_REMOVE_AD_SUBSCRIPTION_TYPE = BaseAction;\ntype RCV_REMOVE_AD_SUBSCRIPTION_TYPE = BaseAction & {\n response: SubscriptionAdvertisement;\n};\n\nexport const REQUEST_FAILED = 'AD_SUBSCRIPTION/REQUEST_FAILED';\n\ntype REQUEST_FAILED_TYPE = BaseAction & {\n action:\n | typeof REQ_AD_SUBSCRIPTION_LIST\n | typeof REQ_CREATE_AD_SUBSCRIPTION\n | typeof REQ_REMOVE_AD_SUBSCRIPTION;\n};\n\nexport type AD_SUBSCRIPTION_ACTION =\n | REQ_AD_SUBSCRIPTION_LIST_TYPE\n | RCV_AD_SUBSCRIPTION_LIST_TYPE\n | REQ_CREATE_AD_SUBSCRIPTION_TYPE\n | RCV_CREATE_AD_SUBSCRIPTION_TYPE\n | REQ_REMOVE_AD_SUBSCRIPTION_TYPE\n | RCV_REMOVE_AD_SUBSCRIPTION_TYPE\n | REQUEST_FAILED_TYPE;\n\ntype Dispatch = ReduxDispatch;\n\nexport const all = () => async (dispatch: Dispatch, getState: () => RootState) => {\n const { auth } = getState();\n if (!auth.token || requestCache.isPending(REQ_AD_SUBSCRIPTION_LIST)) {\n return;\n }\n requestCache.isPending(REQ_AD_SUBSCRIPTION_LIST, true);\n\n try {\n dispatch({ type: REQ_AD_SUBSCRIPTION_LIST });\n\n const response = await http.json(\n '/api/subscriptions/object',\n buildAuthorizedGetRequest(auth.token),\n );\n http.validateResponse(response);\n dispatch({\n type: RCV_AD_SUBSCRIPTION_LIST,\n response: response.response,\n });\n } catch (_e) {\n dispatch({ type: REQUEST_FAILED, action: REQ_AD_SUBSCRIPTION_LIST });\n }\n requestCache.isPending(REQ_AD_SUBSCRIPTION_LIST, false);\n};\n\nexport const create =\n (subscription: SubscriptionAdvertisement) =>\n async (dispatch: Dispatch, getState: () => RootState) => {\n const { auth } = getState();\n if (!auth.token || requestCache.isPending(REQ_CREATE_AD_SUBSCRIPTION)) {\n return;\n }\n requestCache.isPending(REQ_CREATE_AD_SUBSCRIPTION, true);\n\n try {\n dispatch({ type: REQ_CREATE_AD_SUBSCRIPTION });\n\n const response = await http.json(\n '/api/subscriptions/object',\n buildAuthorizedPostRequest(auth.token, { content: subscription }),\n );\n http.validateResponse(response);\n dispatch({\n type: RCV_CREATE_AD_SUBSCRIPTION,\n response: response.response,\n });\n } catch (_e) {\n dispatch({ type: REQUEST_FAILED, action: REQ_CREATE_AD_SUBSCRIPTION });\n }\n requestCache.isPending(REQ_CREATE_AD_SUBSCRIPTION, false);\n };\n\nexport const remove =\n (subscription: SubscriptionAdvertisement) =>\n async (dispatch: Dispatch, getState: () => RootState) => {\n const { auth } = getState();\n if (!auth.token || requestCache.isPending(REQ_REMOVE_AD_SUBSCRIPTION)) {\n return;\n }\n requestCache.isPending(REQ_REMOVE_AD_SUBSCRIPTION, true);\n\n try {\n dispatch({ type: REQ_REMOVE_AD_SUBSCRIPTION });\n\n const response = await http.json(\n `/api/subscriptions/object/${subscription.id}`,\n buildAuthorizedDeleteRequest(auth.token),\n );\n http.validateResponse(response);\n dispatch({\n type: RCV_REMOVE_AD_SUBSCRIPTION,\n response: response.response,\n });\n } catch (_e) {\n dispatch({ type: REQUEST_FAILED, action: REQ_REMOVE_AD_SUBSCRIPTION });\n }\n requestCache.isPending(REQ_REMOVE_AD_SUBSCRIPTION, false);\n };\n"], "mappings": "0HAaO,IAAMA,EAA2B,2BAC3BC,EAA2B,2BAM3BC,EAA6B,6BAC7BC,EAA6B,6BAM7BC,EAA6B,6BAC7BC,EAA6B,6BAM7BC,EAAiB,iCAoBjBC,EAAM,IAAM,MAAOC,EAAoBC,IAA8B,CAChF,GAAM,CAAE,KAAAC,CAAK,EAAID,EAAS,EAC1B,GAAI,GAACC,EAAK,OAASC,EAAa,UAAUX,CAAwB,GAGlE,CAAAW,EAAa,UAAUX,EAA0B,EAAI,EAErD,GAAI,CACFQ,EAAS,CAAE,KAAMR,CAAyB,CAAC,EAE3C,IAAMY,EAAW,MAAWC,EAC1B,4BACAC,EAA0BJ,EAAK,KAAK,CACtC,EACKK,EAAiBH,CAAQ,EAC9BJ,EAAS,CACP,KAAMP,EACN,SAAUW,EAAS,QACrB,CAAC,CACH,MAAa,CACXJ,EAAS,CAAE,KAAMF,EAAgB,OAAQN,CAAyB,CAAC,CACrE,CACAW,EAAa,UAAUX,EAA0B,EAAK,EACxD,EAEagB,EACVC,GACD,MAAOT,EAAoBC,IAA8B,CACvD,GAAM,CAAE,KAAAC,CAAK,EAAID,EAAS,EAC1B,GAAI,GAACC,EAAK,OAASC,EAAa,UAAUT,CAA0B,GAGpE,CAAAS,EAAa,UAAUT,EAA4B,EAAI,EAEvD,GAAI,CACFM,EAAS,CAAE,KAAMN,CAA2B,CAAC,EAE7C,IAAMU,EAAW,MAAWC,EAC1B,4BACAK,EAA2BR,EAAK,MAAO,CAAE,QAASO,CAAa,CAAC,CAClE,EACKF,EAAiBH,CAAQ,EAC9BJ,EAAS,CACP,KAAML,EACN,SAAUS,EAAS,QACrB,CAAC,CACH,MAAa,CACXJ,EAAS,CAAE,KAAMF,EAAgB,OAAQJ,CAA2B,CAAC,CACvE,CACAS,EAAa,UAAUT,EAA4B,EAAK,EAC1D,EAEWiB,EACVF,GACD,MAAOT,EAAoBC,IAA8B,CACvD,GAAM,CAAE,KAAAC,CAAK,EAAID,EAAS,EAC1B,GAAI,GAACC,EAAK,OAASC,EAAa,UAAUP,CAA0B,GAGpE,CAAAO,EAAa,UAAUP,EAA4B,EAAI,EAEvD,GAAI,CACFI,EAAS,CAAE,KAAMJ,CAA2B,CAAC,EAE7C,IAAMQ,EAAW,MAAWC,EAC1B,6BAA6BI,EAAa,EAAE,GAC5CG,EAA6BV,EAAK,KAAK,CACzC,EACKK,EAAiBH,CAAQ,EAC9BJ,EAAS,CACP,KAAMH,EACN,SAAUO,EAAS,QACrB,CAAC,CACH,MAAa,CACXJ,EAAS,CAAE,KAAMF,EAAgB,OAAQF,CAA2B,CAAC,CACvE,CACAO,EAAa,UAAUP,EAA4B,EAAK,EAC1D", "names": ["REQ_AD_SUBSCRIPTION_LIST", "RCV_AD_SUBSCRIPTION_LIST", "REQ_CREATE_AD_SUBSCRIPTION", "RCV_CREATE_AD_SUBSCRIPTION", "REQ_REMOVE_AD_SUBSCRIPTION", "RCV_REMOVE_AD_SUBSCRIPTION", "REQUEST_FAILED", "all", "dispatch", "getState", "auth", "request_cache_default", "response", "json", "buildAuthorizedGetRequest", "validateResponse", "create", "subscription", "buildAuthorizedPostRequest", "remove", "buildAuthorizedDeleteRequest"] }