{ "version": 3, "sources": ["../javascripts/actions/assignment.ts"], "sourcesContent": ["import requestCache from '../utils/request-cache';\n\nimport type { Dispatch as ReduxDispatch } from '@reduxjs/toolkit';\nimport QueryFilter from '../helpers/query-filter';\nimport type { RootState } from '../reducers';\nimport { trackAssignmentRemoval } from './tracking';\n\nimport type { ElasticSearchResponse } from '../@types/ElasticSearchResponse';\nimport type { Retailer } from '../@types/Retailer';\nimport type { BaseAction } from '../@types/actions';\nimport type { Assignment, AssignmentIn, AssignmentPublishProps } from '../@types/assignment';\nimport type { Stakeholder } from '../@types/stakeholder';\nimport * as http from '../Http';\nimport {\n buildAuthorizedDeleteRequest,\n buildAuthorizedGetRequest,\n buildAuthorizedPostRequest,\n} from '../Http/requestTemplates';\n\nexport const REQ_ASSIGNMENT = 'REQ/ASSIGNMENT';\nexport const RCV_ASSIGNMENT = 'RCV/ASSIGNMENT';\ntype REQ_ASSIGNMENT_TYPE = BaseAction;\ntype RCV_ASSIGNMENT_TYPE = BaseAction & {\n response: ElasticSearchResponse;\n};\n\nexport const REQ_ASSIGNMENT_RECIPIENTS = 'REQ/ASSIGNMENT_RECIPIENT_LIST';\nexport const RCV_ASSIGNMENT_RECIPIENTS = 'RCV/ASSIGNMENT_RECIPIENT_LIST';\ntype REQ_ASSIGNMENT_RECIPIENTS_TYPE = BaseAction;\ntype RCV_ASSIGNMENT_RECIPIENTS_TYPE = BaseAction & {\n response: ElasticSearchResponse;\n};\n\nexport const REQ_ASSIGNMENT_STAKEHOLDERS = 'REQ/ASSIGNMENT_STAKEHOLDER_LIST';\nexport const RCV_ASSIGNMENT_STAKEHOLDERS = 'RCV/ASSIGNMENT_STAKEHOLDER_LIST';\ntype REQ_ASSIGNMENT_STAKEHOLDERS_TYPE = BaseAction;\ntype RCV_ASSIGNMENT_STAKEHOLDERS_TYPE = BaseAction & {\n response: Stakeholder[];\n id: string;\n};\n\nexport const REQ_ASSIGNMENTS_LIST = 'REQ/ASSIGNMENTS_LIST';\nexport const RCV_ASSIGNMENTS_LIST = 'RCV/ASSIGNMENTS_LIST';\ntype REQ_ASSIGNMENTS_LIST_TYPE = BaseAction;\ntype RCV_ASSIGNMENTS_LIST_TYPE = BaseAction & {\n response: ElasticSearchResponse;\n};\n\nexport const REQ_REMOVE_ASSIGNMENT = 'REQ/REMOVE_ASSIGNMENT';\nexport const RCV_REMOVE_ASSIGNMENT = 'RCV/REMOVE_ASSIGNMENT';\ntype REQ_REMOVE_ASSIGNMENT_TYPE = BaseAction;\ntype RCV_REMOVE_ASSIGNMENT_TYPE = BaseAction & {\n response: { id: string };\n};\n\nexport const REQ_CREATE_ASSIGNMENT = 'REQ/CREATE_ASSIGNMENT';\nexport const RCV_CREATE_ASSIGNMENT = 'RCV/CREATE_ASSIGNMENT';\ntype REQ_CREATE_ASSIGNMENT_TYPE = BaseAction;\ntype RCV_CREATE_ASSIGNMENT_TYPE = BaseAction & {\n response: AssignmentPublishProps;\n};\n\nexport const REQ_CLEAR_ASSIGNMENTS = 'REQ/CLEAR_ASSIGNMENTS';\ntype REQ_CLEAR_ASSIGNMENTS_TYPE = BaseAction;\n\nexport const REQUEST_FAILED = 'ASSIGNMENT/REQUEST_FAILED';\ntype REQUEST_FAILED_TYPE = BaseAction;\n\nexport const REQ_CLEAR_CREATED_ASSIGNMENT = 'REQ/CLEAR_CREATED_ASSIGNMENT';\ntype REQ_CLEAR_CREATED_ASSIGNMENT_TYPE = BaseAction;\n\nexport type ASSIGNMENT_ACTION =\n | REQ_ASSIGNMENT_TYPE\n | RCV_ASSIGNMENT_TYPE\n | REQ_ASSIGNMENT_RECIPIENTS_TYPE\n | RCV_ASSIGNMENT_RECIPIENTS_TYPE\n | REQ_ASSIGNMENT_STAKEHOLDERS_TYPE\n | RCV_ASSIGNMENT_STAKEHOLDERS_TYPE\n | REQ_ASSIGNMENTS_LIST_TYPE\n | RCV_ASSIGNMENTS_LIST_TYPE\n | REQ_REMOVE_ASSIGNMENT_TYPE\n | RCV_REMOVE_ASSIGNMENT_TYPE\n | REQ_CREATE_ASSIGNMENT_TYPE\n | RCV_CREATE_ASSIGNMENT_TYPE\n | REQ_CLEAR_ASSIGNMENTS_TYPE\n | REQ_CLEAR_CREATED_ASSIGNMENT_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_ASSIGNMENTS_LIST)) {\n return;\n }\n requestCache.isPending(REQ_ASSIGNMENTS_LIST, true);\n\n try {\n dispatch({ type: REQ_ASSIGNMENTS_LIST });\n\n const response = await http.json>(\n '/api/assignments',\n buildAuthorizedGetRequest(auth.token),\n );\n http.validateResponse(response);\n\n dispatch({\n type: RCV_ASSIGNMENTS_LIST,\n response: response.response,\n });\n } catch (_e) {\n dispatch({ type: REQUEST_FAILED, action: REQ_ASSIGNMENTS_LIST });\n } finally {\n requestCache.isPending(REQ_ASSIGNMENTS_LIST, false);\n }\n};\n\nexport const remove =\n (\n id: string,\n trackData: { information: Assignment & { reason: string; timeUntilSold: string } },\n ) =>\n async (dispatch: Dispatch, getState: () => RootState) => {\n const { auth } = getState();\n if (!auth.token || requestCache.isPending(REQ_REMOVE_ASSIGNMENT)) {\n return;\n }\n requestCache.isPending(REQ_REMOVE_ASSIGNMENT, true);\n\n try {\n dispatch({ type: REQ_REMOVE_ASSIGNMENT });\n\n const response = await http.json<{ id: string }>(\n `/api/assignments/${id}`,\n buildAuthorizedDeleteRequest(auth.token),\n );\n http.validateResponse(response);\n dispatch({\n type: RCV_REMOVE_ASSIGNMENT,\n response: response.response,\n });\n trackAssignmentRemoval(trackData)(dispatch, getState);\n } catch (_e) {\n dispatch({ type: REQUEST_FAILED, action: REQ_REMOVE_ASSIGNMENT });\n } finally {\n requestCache.isPending(REQ_REMOVE_ASSIGNMENT, false);\n }\n };\n\nexport const create =\n (assignment: AssignmentPublishProps) => async (dispatch: Dispatch, getState: () => RootState) => {\n const { auth } = getState();\n if (!auth.token || requestCache.isPending(REQ_CREATE_ASSIGNMENT)) {\n return;\n }\n requestCache.isPending(REQ_CREATE_ASSIGNMENT, true);\n\n try {\n dispatch({ type: REQ_CREATE_ASSIGNMENT });\n\n const response = await http.json(\n '/api/assignments',\n buildAuthorizedPostRequest(auth.token, { content: assignment }),\n );\n http.validateResponse(response);\n dispatch({\n type: RCV_CREATE_ASSIGNMENT,\n response: response.response,\n });\n } catch (_e) {\n dispatch({ type: REQUEST_FAILED, action: REQ_CREATE_ASSIGNMENT });\n } finally {\n requestCache.isPending(REQ_CREATE_ASSIGNMENT, false);\n }\n };\n\nexport const get = (id: string) => async (dispatch: Dispatch, getState: () => RootState) => {\n const { auth } = getState();\n if (!auth.token || requestCache.isPending(REQ_ASSIGNMENT)) {\n return;\n }\n requestCache.isPending(REQ_ASSIGNMENT, true);\n\n try {\n dispatch({ type: REQ_ASSIGNMENT });\n\n const response = await http.json>(\n `/api/assignments/${id}`,\n buildAuthorizedGetRequest(auth.token),\n );\n http.validateResponse(response);\n dispatch({\n type: RCV_ASSIGNMENT,\n response: response.response,\n });\n } catch (_e) {\n dispatch({ type: REQUEST_FAILED, action: REQ_ASSIGNMENT });\n } finally {\n requestCache.isPending(REQ_ASSIGNMENT, false);\n }\n};\n\nexport const getRecipientCount = () => async (dispatch: Dispatch, getState: () => RootState) => {\n const { auth } = getState();\n if (!auth.token || requestCache.isPending(REQ_ASSIGNMENT_RECIPIENTS)) {\n return;\n }\n requestCache.isPending(REQ_ASSIGNMENT_RECIPIENTS, true);\n\n try {\n const queryFilter = QueryFilter.create().add('acceptsAssignments', 'true').setPaginationSize(0);\n\n dispatch({ type: REQ_ASSIGNMENT_RECIPIENTS });\n\n const response = await http.json>(\n `/api/retailers?filter=${queryFilter.toQueryStringFilter()}`,\n buildAuthorizedGetRequest(auth.token),\n );\n http.validateResponse(response);\n dispatch({\n type: RCV_ASSIGNMENT_RECIPIENTS,\n response: response.response,\n });\n } catch (_e) {\n dispatch({ type: REQUEST_FAILED, action: REQ_ASSIGNMENT_RECIPIENTS });\n } finally {\n requestCache.isPending(REQ_ASSIGNMENT_RECIPIENTS, false);\n }\n};\n\nexport const getStakeholders =\n (id: string) => async (dispatch: Dispatch, getState: () => RootState) => {\n const key = `${REQ_ASSIGNMENT_STAKEHOLDERS}/${id}`;\n\n const { auth } = getState();\n if (!auth.token || requestCache.isPending(key)) {\n return;\n }\n requestCache.isPending(key, true);\n\n try {\n dispatch({ type: REQ_ASSIGNMENT_STAKEHOLDERS });\n\n const response = await http.json(\n `/api/assignments/${id}/stakeholders`,\n buildAuthorizedGetRequest(auth.token),\n );\n http.validateResponse(response);\n dispatch({\n type: RCV_ASSIGNMENT_STAKEHOLDERS,\n response: response.response,\n id,\n });\n } catch (_e) {\n dispatch({ type: REQUEST_FAILED, action: REQ_ASSIGNMENT_STAKEHOLDERS });\n } finally {\n requestCache.isPending(key, false);\n }\n };\n\nexport const clear = () => (dispatch: Dispatch) => dispatch({ type: REQ_CLEAR_ASSIGNMENTS });\n\nexport const resetCreatedItem = () => (dispatch: Dispatch) =>\n dispatch({ type: REQ_CLEAR_CREATED_ASSIGNMENT });\n"], "mappings": "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", "names": ["REQ_ASSIGNMENT_RECIPIENTS", "RCV_ASSIGNMENT_RECIPIENTS", "REQ_ASSIGNMENT_STAKEHOLDERS", "RCV_ASSIGNMENT_STAKEHOLDERS", "REQ_ASSIGNMENTS_LIST", "RCV_ASSIGNMENTS_LIST", "REQ_REMOVE_ASSIGNMENT", "RCV_REMOVE_ASSIGNMENT", "REQ_CREATE_ASSIGNMENT", "RCV_CREATE_ASSIGNMENT", "REQ_CLEAR_ASSIGNMENTS", "REQUEST_FAILED", "REQ_CLEAR_CREATED_ASSIGNMENT", "all", "dispatch", "getState", "auth", "request_cache_default", "response", "json", "buildAuthorizedGetRequest", "validateResponse", "remove", "id", "trackData", "buildAuthorizedDeleteRequest", "trackAssignmentRemoval", "create", "assignment", "buildAuthorizedPostRequest", "getRecipientCount", "dispatch", "getState", "auth", "request_cache_default", "REQ_ASSIGNMENT_RECIPIENTS", "queryFilter", "query_filter_default", "response", "json", "buildAuthorizedGetRequest", "validateResponse", "RCV_ASSIGNMENT_RECIPIENTS", "REQUEST_FAILED", "getStakeholders", "id", "key", "REQ_ASSIGNMENT_STAKEHOLDERS", "RCV_ASSIGNMENT_STAKEHOLDERS", "clear", "REQ_CLEAR_ASSIGNMENTS", "resetCreatedItem", "REQ_CLEAR_CREATED_ASSIGNMENT"] }