@openeventkit/event-site 2.1.48 → 2.1.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/actions/user-actions.js +9 -10
- package/src/components/RegistrationLiteComponent.js +1 -1
- package/src/components/VimeoPlayer.js +2 -2
- package/src/content/site-settings/index.json +1 -1
- package/src/content/sponsors.json +1 -1
- package/src/styles/colors.scss +11 -11
- package/src/templates/extra-questions-page.js +1 -1
- package/src/templates/full-profile-page.js +2 -3
- package/src/utils/alerts.js +34 -27
- package/src/utils/customErrorHandler.js +4 -4
- package/src/utils/ticketConstants.js +10 -0
- package/src/components/summit-my-orders-tickets/components/ConfirmPopup/ConfirmPopup.js +0 -96
- package/src/components/summit-my-orders-tickets/components/ConfirmPopup/confirm-popup.scss +0 -57
- package/src/components/summit-my-orders-tickets/components/DelegatePopup/DelegatePopup.js +0 -50
- package/src/components/summit-my-orders-tickets/components/DelegatePopup/delegate-popup.scss +0 -57
- package/src/components/summit-my-orders-tickets/components/MyOrdersTickets.js +0 -79
- package/src/components/summit-my-orders-tickets/components/OrderDetails/OrderDetails.js +0 -112
- package/src/components/summit-my-orders-tickets/components/OrderDetails/order-details.scss +0 -128
- package/src/components/summit-my-orders-tickets/components/OrderList/OrderList.js +0 -80
- package/src/components/summit-my-orders-tickets/components/OrderList/OrderListItem.js +0 -85
- package/src/components/summit-my-orders-tickets/components/OrderList/order-list.scss +0 -60
- package/src/components/summit-my-orders-tickets/components/OrderOptions/OrderOptions.js +0 -83
- package/src/components/summit-my-orders-tickets/components/OrderOptions/order-options.scss +0 -50
- package/src/components/summit-my-orders-tickets/components/OrderSummary/OrderSummary.js +0 -64
- package/src/components/summit-my-orders-tickets/components/OrderSummary/OrderSummaryTable.js +0 -97
- package/src/components/summit-my-orders-tickets/components/OrderSummary/order-summary.scss +0 -178
- package/src/components/summit-my-orders-tickets/components/OrderTicketDetails/OrderTicketDetails.js +0 -102
- package/src/components/summit-my-orders-tickets/components/OrderTicketDetails/order-ticket-details.scss +0 -129
- package/src/components/summit-my-orders-tickets/components/OrderTicketList/OrderTicketList.js +0 -19
- package/src/components/summit-my-orders-tickets/components/OrderTicketList/OrderTicketListItem.js +0 -13
- package/src/components/summit-my-orders-tickets/components/OrderTicketList/order-ticket-list.scss +0 -21
- package/src/components/summit-my-orders-tickets/components/TicketDetails/TicketDetails.js +0 -93
- package/src/components/summit-my-orders-tickets/components/TicketDetails/ticket-details.scss +0 -129
- package/src/components/summit-my-orders-tickets/components/TicketList/TicketList.js +0 -65
- package/src/components/summit-my-orders-tickets/components/TicketList/TicketListItem.js +0 -16
- package/src/components/summit-my-orders-tickets/components/TicketList/ticket-list.scss +0 -21
- package/src/components/summit-my-orders-tickets/components/TicketPopup/TicketPopup.js +0 -186
- package/src/components/summit-my-orders-tickets/components/TicketPopup/TicketPopupAssignForm.js +0 -136
- package/src/components/summit-my-orders-tickets/components/TicketPopup/TicketPopupEditDetailsForm/TicketPopupEditDetailsForm.js +0 -468
- package/src/components/summit-my-orders-tickets/components/TicketPopup/TicketPopupEditDetailsForm/ticket-popup-edit-details-form.scss +0 -71
- package/src/components/summit-my-orders-tickets/components/TicketPopup/TicketPopupNotifyForm.js +0 -64
- package/src/components/summit-my-orders-tickets/components/TicketPopup/TicketPopupReassignForm.js +0 -193
- package/src/components/summit-my-orders-tickets/components/TicketPopup/TicketPopupRefundForm.js +0 -64
- package/src/components/summit-my-orders-tickets/components/TicketPopup/ticket-popup.scss +0 -416
- package/src/components/summit-my-orders-tickets/context/TicketAssignedContext.js +0 -24
- package/src/components/summit-my-orders-tickets/global/constants.js +0 -10
- package/src/components/summit-my-orders-tickets/i18n/index.js +0 -37
- package/src/components/summit-my-orders-tickets/i18n/locales/en.json +0 -296
- package/src/components/summit-my-orders-tickets/i18n/locales/es.json +0 -296
- package/src/components/summit-my-orders-tickets/index.js +0 -1
- package/src/components/summit-my-orders-tickets/store/actions/base-actions.js +0 -7
- package/src/components/summit-my-orders-tickets/store/actions/order-actions.js +0 -96
- package/src/components/summit-my-orders-tickets/store/actions/summit-actions.js +0 -64
- package/src/components/summit-my-orders-tickets/store/actions/ticket-actions.js +0 -666
- package/src/components/summit-my-orders-tickets/store/actions/timer-actions.js +0 -29
- package/src/components/summit-my-orders-tickets/store/actions/user-actions.js +0 -42
- package/src/components/summit-my-orders-tickets/store/history.js +0 -16
- package/src/components/summit-my-orders-tickets/store/index.js +0 -117
- package/src/components/summit-my-orders-tickets/store/reducers/base-reducer.js +0 -67
- package/src/components/summit-my-orders-tickets/store/reducers/clock-reducer.js +0 -31
- package/src/components/summit-my-orders-tickets/store/reducers/order-reducer.js +0 -95
- package/src/components/summit-my-orders-tickets/store/reducers/summit-reducer.js +0 -52
- package/src/components/summit-my-orders-tickets/store/reducers/ticket-reducer.js +0 -92
- package/src/components/summit-my-orders-tickets/store/reducers/user-reducer.js +0 -35
- package/src/components/summit-my-orders-tickets/styles/_variables.scss +0 -17
- package/src/components/summit-my-orders-tickets/styles/general.scss +0 -17
- package/src/components/summit-my-orders-tickets/summit-my-orders-tickets.js +0 -86
- package/src/components/summit-my-orders-tickets/util/helpers/capitalizeFirstLetter.js +0 -1
- package/src/components/summit-my-orders-tickets/util/helpers/createReducer.js +0 -11
- package/src/components/summit-my-orders-tickets/util/helpers/formatCurrency.js +0 -15
- package/src/components/summit-my-orders-tickets/util/helpers/getDayNumberFromDate.js +0 -9
- package/src/components/summit-my-orders-tickets/util/helpers/getDaysBetweenDates.js +0 -16
- package/src/components/summit-my-orders-tickets/util/helpers/getDocumentOffset.js +0 -8
- package/src/components/summit-my-orders-tickets/util/helpers/getFormattedDate.js +0 -7
- package/src/components/summit-my-orders-tickets/util/helpers/getFormattedTime.js +0 -9
- package/src/components/summit-my-orders-tickets/util/helpers/getWindowScroll.js +0 -6
- package/src/components/summit-my-orders-tickets/util/helpers/index.js +0 -22
- package/src/components/summit-my-orders-tickets/util/index.js +0 -5
- package/src/components/summit-my-orders-tickets/util/order/calculateOrderTotals.js +0 -28
- package/src/components/summit-my-orders-tickets/util/order/getOrderStatusData.js +0 -71
- package/src/components/summit-my-orders-tickets/util/order/index.js +0 -2
- package/src/components/summit-my-orders-tickets/util/summit/checkSummitPast.js +0 -10
- package/src/components/summit-my-orders-tickets/util/summit/checkSummitStarted.js +0 -5
- package/src/components/summit-my-orders-tickets/util/summit/getSummitFormattedDate.js +0 -29
- package/src/components/summit-my-orders-tickets/util/summit/getSummitFormattedReassignDate.js +0 -8
- package/src/components/summit-my-orders-tickets/util/summit/getSummitLocation.js +0 -9
- package/src/components/summit-my-orders-tickets/util/summit/getSummitReassignDate.js +0 -7
- package/src/components/summit-my-orders-tickets/util/summit/index.js +0 -7
- package/src/components/summit-my-orders-tickets/util/summit/useSummitDetails.js +0 -36
- package/src/components/summit-my-orders-tickets/util/ticket/getTicketRole.js +0 -11
- package/src/components/summit-my-orders-tickets/util/ticket/getTicketStatusData.js +0 -48
- package/src/components/summit-my-orders-tickets/util/ticket/getTicketType.js +0 -1
- package/src/components/summit-my-orders-tickets/util/ticket/index.js +0 -4
- package/src/components/summit-my-orders-tickets/util/ticket/useTicketDetails.js +0 -60
- package/src/components/summit-my-orders-tickets/util/timer/index.js +0 -1
- package/src/components/summit-my-orders-tickets/util/timer/useNow.js +0 -8
|
@@ -1,666 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2022
|
|
3
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
* you may not use this file except in compliance with the License.
|
|
5
|
-
* You may obtain a copy of the License at
|
|
6
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
8
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
9
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
10
|
-
* See the License for the specific language governing permissions and
|
|
11
|
-
* limitations under the License.
|
|
12
|
-
**/
|
|
13
|
-
|
|
14
|
-
import i18n from '../../i18n';
|
|
15
|
-
import IdTokenVerifier from 'idtoken-verifier';
|
|
16
|
-
import Swal from 'sweetalert2';
|
|
17
|
-
import {
|
|
18
|
-
authErrorHandler,
|
|
19
|
-
getRequest,
|
|
20
|
-
putRequest,
|
|
21
|
-
deleteRequest,
|
|
22
|
-
createAction,
|
|
23
|
-
stopLoading,
|
|
24
|
-
startLoading
|
|
25
|
-
} from 'openstack-uicore-foundation/lib/utils/actions';
|
|
26
|
-
import { objectToQueryString } from 'openstack-uicore-foundation/lib/utils/methods';
|
|
27
|
-
import { getIdToken } from 'openstack-uicore-foundation/lib/security/methods';
|
|
28
|
-
import { getUserOrders } from "./order-actions";
|
|
29
|
-
import { updateProfile } from './user-actions';
|
|
30
|
-
import { processActionError } from './../../util/helpers/index';
|
|
31
|
-
|
|
32
|
-
export const GET_TICKETS = 'GET_TICKETS';
|
|
33
|
-
export const ASSIGN_TICKET = 'ASSIGN_TICKET';
|
|
34
|
-
export const REMOVE_TICKET_ATTENDEE = 'REMOVE_TICKET_ATTENDEE';
|
|
35
|
-
export const REFUND_TICKET = 'REFUND_TICKET';
|
|
36
|
-
export const RESEND_NOTIFICATION = 'RESEND_NOTIFICATION';
|
|
37
|
-
export const GET_TICKETS_BY_ORDER = 'GET_TICKETS_BY_ORDER';
|
|
38
|
-
export const GET_TICKETS_BY_ORDER_ERROR = 'GET_TICKETS_BY_ORDER_ERROR';
|
|
39
|
-
export const GET_ORDER_TICKET_DETAILS = 'GET_ORDER_TICKET_DETAILS';
|
|
40
|
-
export const GET_TICKET_DETAILS = 'GET_TICKET_DETAILS';
|
|
41
|
-
export const DELEGATE_TICKET = 'DELEGATE_TICKET';
|
|
42
|
-
|
|
43
|
-
export const TICKET_ATTENDEE_KEYS = {
|
|
44
|
-
email: 'attendee_email',
|
|
45
|
-
firstName: 'attendee_first_name',
|
|
46
|
-
lastName: 'attendee_last_name',
|
|
47
|
-
company: 'attendee_company',
|
|
48
|
-
disclaimerAccepted: 'disclaimer_accepted',
|
|
49
|
-
extraQuestions: 'extra_questions'
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const customFetchErrorHandler = (response) => (dispatch) => {
|
|
53
|
-
let code = response.status;
|
|
54
|
-
let msg = response.statusText;
|
|
55
|
-
dispatch(stopLoading());
|
|
56
|
-
switch (code) {
|
|
57
|
-
case 403:
|
|
58
|
-
Swal.fire('ERROR', i18n.t('errors.user_not_authz'), 'warning');
|
|
59
|
-
break;
|
|
60
|
-
case 401:
|
|
61
|
-
Swal.fire('ERROR', i18n.t('errors.session_expired'), 'error');
|
|
62
|
-
break;
|
|
63
|
-
case 412:
|
|
64
|
-
msg = '';
|
|
65
|
-
for (var [key, value] of Object.entries(response.errors)) {
|
|
66
|
-
if (isNaN(key)) {
|
|
67
|
-
msg += key + ': ';
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
msg += value + '<br>';
|
|
71
|
-
}
|
|
72
|
-
Swal.fire('Validation error', msg, 'warning');
|
|
73
|
-
break;
|
|
74
|
-
case 500:
|
|
75
|
-
Swal.fire('ERROR', i18n.t('errors.server_error'), 'error');
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
const customWithout412ErrorHandler = (
|
|
80
|
-
err
|
|
81
|
-
) => (dispatch) => {
|
|
82
|
-
dispatch(stopLoading());
|
|
83
|
-
switch (err.status) {
|
|
84
|
-
case 403:
|
|
85
|
-
Swal.fire('ERROR', i18n.t('errors.user_not_authz'), 'warning');
|
|
86
|
-
break;
|
|
87
|
-
case 401:
|
|
88
|
-
Swal.fire('ERROR', i18n.t('errors.session_expired'), 'error');
|
|
89
|
-
break;
|
|
90
|
-
case 500:
|
|
91
|
-
Swal.fire('ERROR', i18n.t('errors.server_error'), 'error');
|
|
92
|
-
break;
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
export const getUserTickets = ({ page = 1, perPage = 5 }) => async (dispatch, getState, { getAccessToken, apiBaseUrl, loginUrl }) => {
|
|
98
|
-
const { userState: { userProfile }, summitState: { summit } } = getState();
|
|
99
|
-
|
|
100
|
-
if (!summit) return Promise.reject();
|
|
101
|
-
|
|
102
|
-
const accessToken = await getAccessToken().catch(() => {
|
|
103
|
-
dispatch(stopLoading());
|
|
104
|
-
console.log('REJECTING PROMISE AFTER STOP LOADING')
|
|
105
|
-
return Promise.reject();
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
if (!accessToken) return Promise.reject();
|
|
109
|
-
|
|
110
|
-
if (!userProfile.id) return Promise.reject();
|
|
111
|
-
|
|
112
|
-
dispatch(startLoading());
|
|
113
|
-
|
|
114
|
-
const params = {
|
|
115
|
-
access_token: accessToken,
|
|
116
|
-
expand: 'order,owner,owner.manager,promo_code,ticket_type',
|
|
117
|
-
order: '-id',
|
|
118
|
-
fields: 'order.id,order.owner_first_name,order.owner_last_name,order.owner_email,owner.first_name,owner.last_name,owner.email,owner.company,owner.status,owner.manager.id',
|
|
119
|
-
'filter[]': [`status==Paid`, `order_owner_id<>${userProfile.id}`],
|
|
120
|
-
relations: 'none',
|
|
121
|
-
page: page,
|
|
122
|
-
per_page: perPage,
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
return getRequest(
|
|
126
|
-
null,
|
|
127
|
-
createAction(GET_TICKETS),
|
|
128
|
-
`${apiBaseUrl}/api/v1/summits/${summit.id}/orders/all/tickets/me`,
|
|
129
|
-
authErrorHandler
|
|
130
|
-
)(params)(dispatch).then(() => {
|
|
131
|
-
dispatch(stopLoading());
|
|
132
|
-
}).catch(e => {
|
|
133
|
-
dispatch(stopLoading());
|
|
134
|
-
return (e);
|
|
135
|
-
});
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
export const getTicketById = ({order, ticket}) => async (dispatch, getState, { getAccessToken, apiBaseUrl, loginUrl }) => {
|
|
139
|
-
const { userState: { userProfile }, summitState: { summit } } = getState();
|
|
140
|
-
|
|
141
|
-
const { id: orderId } = order;
|
|
142
|
-
const { id: ticketId } = ticket;
|
|
143
|
-
|
|
144
|
-
const fromOrderList = order.hasOwnProperty('tickets_excerpt_by_ticket_type');
|
|
145
|
-
|
|
146
|
-
if (!summit) return
|
|
147
|
-
|
|
148
|
-
const accessToken = await getAccessToken().catch(() => {
|
|
149
|
-
dispatch(stopLoading());
|
|
150
|
-
console.log('REJECTING PROMISE AFTER STOP LOADING')
|
|
151
|
-
return Promise.reject();
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
if (!accessToken) return Promise.reject();
|
|
155
|
-
|
|
156
|
-
dispatch(startLoading());
|
|
157
|
-
|
|
158
|
-
const params = {
|
|
159
|
-
access_token: accessToken,
|
|
160
|
-
expand: `${fromOrderList ? 'order' : ''},owner,owner.extra_questions,badge,badge.features,refund_requests,promo_code,ticket_type`,
|
|
161
|
-
fields: 'order.id, order.owner_first_name, order.owner_last_name, order.owner_email'
|
|
162
|
-
};
|
|
163
|
-
|
|
164
|
-
return getRequest(
|
|
165
|
-
null,
|
|
166
|
-
createAction(fromOrderList ? GET_ORDER_TICKET_DETAILS : GET_TICKET_DETAILS),
|
|
167
|
-
`${apiBaseUrl}/api/v1/summits/all/orders/${orderId}/tickets/${ticketId}`,
|
|
168
|
-
authErrorHandler
|
|
169
|
-
)(params)(dispatch).then(() => {
|
|
170
|
-
dispatch(stopLoading());
|
|
171
|
-
}).catch(e => {
|
|
172
|
-
dispatch(stopLoading());
|
|
173
|
-
return (e);
|
|
174
|
-
});
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
export const getTicketsByOrder = ({ orderId, page = 1, perPage = 5 }) => async (dispatch, getState, { getAccessToken, apiBaseUrl, loginUrl }) => {
|
|
178
|
-
|
|
179
|
-
dispatch(startLoading());
|
|
180
|
-
|
|
181
|
-
const accessToken = await getAccessToken().catch(() => {
|
|
182
|
-
dispatch(stopLoading());
|
|
183
|
-
console.log('REJECTING PROMISE AFTER STOP LOADING')
|
|
184
|
-
return Promise.reject();
|
|
185
|
-
});
|
|
186
|
-
|
|
187
|
-
if (!accessToken) return Promise.reject();
|
|
188
|
-
|
|
189
|
-
const params = {
|
|
190
|
-
access_token: accessToken,
|
|
191
|
-
expand: 'refund_requests,owner,owner.extra_questions,badge,badge.features,promo_code,ticket_type',
|
|
192
|
-
order: '+id',
|
|
193
|
-
page: page,
|
|
194
|
-
per_page: perPage
|
|
195
|
-
};
|
|
196
|
-
|
|
197
|
-
return getRequest(
|
|
198
|
-
null,
|
|
199
|
-
createAction(GET_TICKETS_BY_ORDER),
|
|
200
|
-
`${apiBaseUrl}/api/v1/summits/all/orders/${orderId}/tickets`,
|
|
201
|
-
authErrorHandler
|
|
202
|
-
)(params)(dispatch).then(() => {
|
|
203
|
-
dispatch(stopLoading());
|
|
204
|
-
}).catch(e => {
|
|
205
|
-
dispatch(stopLoading());
|
|
206
|
-
dispatch(createAction(GET_TICKETS_BY_ORDER_ERROR));
|
|
207
|
-
return (e);
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
export const assignAttendee = ({
|
|
212
|
-
ticket,
|
|
213
|
-
message,
|
|
214
|
-
order,
|
|
215
|
-
context,
|
|
216
|
-
data: {
|
|
217
|
-
attendee_email,
|
|
218
|
-
attendee_first_name,
|
|
219
|
-
attendee_last_name,
|
|
220
|
-
attendee_company,
|
|
221
|
-
disclaimer_accepted,
|
|
222
|
-
extra_questions,
|
|
223
|
-
reassignOrderId = null
|
|
224
|
-
}
|
|
225
|
-
}) => async (dispatch, getState, { getAccessToken, apiBaseUrl, loginUrl }) => {
|
|
226
|
-
const accessToken = await getAccessToken().catch(() => {
|
|
227
|
-
dispatch(stopLoading());
|
|
228
|
-
console.log('REJECTING PROMISE AFTER STOP LOADING')
|
|
229
|
-
return Promise.reject();
|
|
230
|
-
});
|
|
231
|
-
|
|
232
|
-
if (!accessToken) return Promise.reject();
|
|
233
|
-
|
|
234
|
-
dispatch(startLoading());
|
|
235
|
-
|
|
236
|
-
const {
|
|
237
|
-
orderState: { current_page: orderPage },
|
|
238
|
-
ticketState: { current_page: ticketPage, orderTickets: { current_page : orderTicketsCurrentPage } }
|
|
239
|
-
} = getState();
|
|
240
|
-
|
|
241
|
-
const params = {
|
|
242
|
-
access_token: accessToken,
|
|
243
|
-
expand: 'owner,owner.extra_questions,badge,badge.type,badge.type.access_levels'
|
|
244
|
-
};
|
|
245
|
-
|
|
246
|
-
const normalizedEntity =
|
|
247
|
-
(!attendee_first_name & !attendee_last_name)
|
|
248
|
-
? { attendee_email, message }
|
|
249
|
-
: {
|
|
250
|
-
attendee_email,
|
|
251
|
-
attendee_first_name,
|
|
252
|
-
attendee_last_name,
|
|
253
|
-
attendee_company,
|
|
254
|
-
extra_questions,
|
|
255
|
-
disclaimer_accepted,
|
|
256
|
-
message
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
const orderId = reassignOrderId ? reassignOrderId : order.id;
|
|
260
|
-
|
|
261
|
-
return putRequest(
|
|
262
|
-
null,
|
|
263
|
-
createAction(ASSIGN_TICKET),
|
|
264
|
-
`${apiBaseUrl}/api/v1/summits/all/orders/${orderId}/tickets/${ticket.id}/attendee`,
|
|
265
|
-
normalizedEntity,
|
|
266
|
-
customWithout412ErrorHandler
|
|
267
|
-
)(params)(dispatch).then((newTicket) => {
|
|
268
|
-
if (reassignOrderId && context === 'ticket-list') {
|
|
269
|
-
dispatch(getUserTickets({ page: ticketPage }));
|
|
270
|
-
} else {
|
|
271
|
-
dispatch(getUserOrders({ page: orderPage }));
|
|
272
|
-
dispatch(getTicketsByOrder({ orderId, page: orderTicketsCurrentPage }));
|
|
273
|
-
}
|
|
274
|
-
return newTicket;
|
|
275
|
-
}).catch(({err}) => {
|
|
276
|
-
processActionError(err);
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
export const editOwnedTicket = ({
|
|
281
|
-
ticket,
|
|
282
|
-
context,
|
|
283
|
-
data: {
|
|
284
|
-
attendee_email,
|
|
285
|
-
attendee_first_name,
|
|
286
|
-
attendee_last_name,
|
|
287
|
-
attendee_company,
|
|
288
|
-
disclaimer_accepted,
|
|
289
|
-
extra_questions,
|
|
290
|
-
}
|
|
291
|
-
}) => async (dispatch, getState, { getAccessToken, getUserProfile, apiBaseUrl, loginUrl }) => {
|
|
292
|
-
const accessToken = await getAccessToken().catch(() => {
|
|
293
|
-
dispatch(stopLoading());
|
|
294
|
-
console.log('REJECTING PROMISE AFTER STOP LOADING')
|
|
295
|
-
return Promise.reject();
|
|
296
|
-
});
|
|
297
|
-
|
|
298
|
-
if (!accessToken) return Promise.reject();
|
|
299
|
-
|
|
300
|
-
dispatch(startLoading());
|
|
301
|
-
|
|
302
|
-
const {
|
|
303
|
-
userState: { userProfile },
|
|
304
|
-
orderState: { current_page: orderPage },
|
|
305
|
-
ticketState: { current_page: ticketPage, orderTickets: { current_page : orderTicketsCurrentPage } }
|
|
306
|
-
} = getState();
|
|
307
|
-
|
|
308
|
-
const params = {
|
|
309
|
-
access_token: accessToken,
|
|
310
|
-
expand: 'owner, owner.extra_questions'
|
|
311
|
-
};
|
|
312
|
-
|
|
313
|
-
const idToken = getIdToken();
|
|
314
|
-
let company = '';
|
|
315
|
-
if (idToken) {
|
|
316
|
-
try {
|
|
317
|
-
const verifier = new IdTokenVerifier();
|
|
318
|
-
let jwt = verifier.decode(idToken);
|
|
319
|
-
company = jwt.payload.company;
|
|
320
|
-
}
|
|
321
|
-
catch (e) {
|
|
322
|
-
console.log('error', e);
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
const normalizedEntity = normalizeTicket({
|
|
327
|
-
attendee_email,
|
|
328
|
-
attendee_first_name,
|
|
329
|
-
attendee_last_name,
|
|
330
|
-
attendee_company,
|
|
331
|
-
disclaimer_accepted,
|
|
332
|
-
extra_questions
|
|
333
|
-
});
|
|
334
|
-
|
|
335
|
-
return putRequest(
|
|
336
|
-
null,
|
|
337
|
-
createAction(ASSIGN_TICKET),
|
|
338
|
-
`${apiBaseUrl}/api/v1/summits/all/orders/all/tickets/${ticket.id}`,
|
|
339
|
-
normalizedEntity,
|
|
340
|
-
authErrorHandler
|
|
341
|
-
)(params)(dispatch).then(async () => {
|
|
342
|
-
const hasManager = ticket.owner?.manager?.id || ticket.owner?.manager_id;
|
|
343
|
-
// email should match ( only update my profile is ticket belongs to me!)
|
|
344
|
-
// and if the ticket doesn't have a manager
|
|
345
|
-
// Check if there's changes in the ticket data to update the profile
|
|
346
|
-
if (userProfile.email == attendee_email && !hasManager && (
|
|
347
|
-
attendee_company.name !== company ||
|
|
348
|
-
attendee_first_name !== userProfile.first_name ||
|
|
349
|
-
attendee_last_name !== userProfile.last_name)) {
|
|
350
|
-
|
|
351
|
-
const newProfile = {
|
|
352
|
-
first_name: attendee_first_name,
|
|
353
|
-
last_name: attendee_last_name,
|
|
354
|
-
company: attendee_company.name
|
|
355
|
-
};
|
|
356
|
-
dispatch(updateProfile(newProfile));
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
// Note: make sure we re-fetch the user profile for the parent app.
|
|
360
|
-
await getUserProfile();
|
|
361
|
-
|
|
362
|
-
// Note: refresh the list view after updating the ticket.
|
|
363
|
-
if (context === 'ticket-list') {
|
|
364
|
-
dispatch(getUserTickets({ page: ticketPage }));
|
|
365
|
-
} else {
|
|
366
|
-
dispatch(getUserOrders({ page: orderPage })).then(() =>
|
|
367
|
-
dispatch(getTicketsByOrder({ orderId: ticket.order_id, page: orderTicketsCurrentPage }))
|
|
368
|
-
);
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
dispatch(stopLoading());
|
|
372
|
-
}).catch(e => {
|
|
373
|
-
dispatch(stopLoading());
|
|
374
|
-
return (e);
|
|
375
|
-
});
|
|
376
|
-
};
|
|
377
|
-
|
|
378
|
-
export const resendNotification = (ticket) => async (dispatch, getState, { getAccessToken, apiBaseUrl, loginUrl }) => {
|
|
379
|
-
const accessToken = await getAccessToken().catch(() => {
|
|
380
|
-
dispatch(stopLoading());
|
|
381
|
-
console.log('REJECTING PROMISE AFTER STOP LOADING')
|
|
382
|
-
return Promise.reject();
|
|
383
|
-
});
|
|
384
|
-
|
|
385
|
-
if (!accessToken) return Promise.reject();
|
|
386
|
-
|
|
387
|
-
const { message } = ticket;
|
|
388
|
-
|
|
389
|
-
dispatch(startLoading());
|
|
390
|
-
|
|
391
|
-
const orderId = ticket.order ? ticket.order.id : ticket.order_id;
|
|
392
|
-
|
|
393
|
-
const params = {
|
|
394
|
-
access_token: accessToken
|
|
395
|
-
};
|
|
396
|
-
|
|
397
|
-
return putRequest(
|
|
398
|
-
null,
|
|
399
|
-
createAction(RESEND_NOTIFICATION),
|
|
400
|
-
`${apiBaseUrl}/api/v1/summits/all/orders/${orderId}/tickets/${ticket.id}/attendee/reinvite`,
|
|
401
|
-
{message},
|
|
402
|
-
authErrorHandler
|
|
403
|
-
)(params)(dispatch).then(() => {
|
|
404
|
-
dispatch(stopLoading());
|
|
405
|
-
}).catch(e => {
|
|
406
|
-
dispatch(stopLoading());
|
|
407
|
-
return (e);
|
|
408
|
-
});
|
|
409
|
-
};
|
|
410
|
-
|
|
411
|
-
export const changeTicketAttendee = ({
|
|
412
|
-
ticket,
|
|
413
|
-
message,
|
|
414
|
-
order,
|
|
415
|
-
context,
|
|
416
|
-
data: { attendee_email }
|
|
417
|
-
}) => async (dispatch, getState, { getAccessToken, apiBaseUrl, loginUrl }) => {
|
|
418
|
-
const accessToken = await getAccessToken().catch(() => {
|
|
419
|
-
dispatch(stopLoading());
|
|
420
|
-
console.log('REJECTING PROMISE AFTER STOP LOADING')
|
|
421
|
-
return Promise.reject();
|
|
422
|
-
});
|
|
423
|
-
|
|
424
|
-
if (!accessToken) return Promise.reject();
|
|
425
|
-
|
|
426
|
-
dispatch(startLoading());
|
|
427
|
-
|
|
428
|
-
const params = {
|
|
429
|
-
access_token: accessToken,
|
|
430
|
-
expand: 'order, owner, owner.extra_questions, order.summit'
|
|
431
|
-
};
|
|
432
|
-
|
|
433
|
-
const orderId = ticket.order ? ticket.order.id : ticket.order_id;
|
|
434
|
-
|
|
435
|
-
return deleteRequest(
|
|
436
|
-
null,
|
|
437
|
-
createAction(REMOVE_TICKET_ATTENDEE),
|
|
438
|
-
`${apiBaseUrl}/api/v1/summits/all/orders/${orderId}/tickets/${ticket.id}/attendee`,
|
|
439
|
-
{},
|
|
440
|
-
customWithout412ErrorHandler
|
|
441
|
-
)(params)(dispatch).then(() => {
|
|
442
|
-
return dispatch(assignAttendee({
|
|
443
|
-
ticket,
|
|
444
|
-
message,
|
|
445
|
-
order,
|
|
446
|
-
context,
|
|
447
|
-
data: {
|
|
448
|
-
attendee_email,
|
|
449
|
-
attendee_first_name: '',
|
|
450
|
-
attendee_last_name: '',
|
|
451
|
-
attendee_company: '',
|
|
452
|
-
disclaimer_accepted: false,
|
|
453
|
-
extra_questions: [],
|
|
454
|
-
reassignOrderId: orderId,
|
|
455
|
-
}
|
|
456
|
-
}));
|
|
457
|
-
}).catch(({err}) => {
|
|
458
|
-
processActionError(err);
|
|
459
|
-
});
|
|
460
|
-
};
|
|
461
|
-
|
|
462
|
-
export const removeAttendee = ({ticket, context}) => async (dispatch, getState, { getAccessToken, apiBaseUrl, loginUrl }) => {
|
|
463
|
-
|
|
464
|
-
const {
|
|
465
|
-
orderState: { current_page: orderPage },
|
|
466
|
-
ticketState: { current_page: ticketPage, orderTickets: { current_page : orderTicketsCurrentPage } }
|
|
467
|
-
} = getState();
|
|
468
|
-
|
|
469
|
-
const accessToken = await getAccessToken().catch(() => {
|
|
470
|
-
dispatch(stopLoading());
|
|
471
|
-
console.log('REJECTING PROMISE AFTER STOP LOADING')
|
|
472
|
-
return Promise.reject();
|
|
473
|
-
});
|
|
474
|
-
|
|
475
|
-
if (!accessToken) return Promise.reject();
|
|
476
|
-
|
|
477
|
-
dispatch(startLoading());
|
|
478
|
-
|
|
479
|
-
const params = {
|
|
480
|
-
access_token: accessToken,
|
|
481
|
-
expand: 'order, owner, owner.extra_questions, order.summit'
|
|
482
|
-
};
|
|
483
|
-
|
|
484
|
-
const orderId = ticket.order ? ticket.order.id : ticket.order_id;
|
|
485
|
-
|
|
486
|
-
return deleteRequest(
|
|
487
|
-
null,
|
|
488
|
-
createAction(REMOVE_TICKET_ATTENDEE),
|
|
489
|
-
`${apiBaseUrl}/api/v1/summits/all/orders/${orderId}/tickets/${ticket.id}/attendee`,
|
|
490
|
-
{},
|
|
491
|
-
authErrorHandler
|
|
492
|
-
)(params)(dispatch).then((removedTicket) => {
|
|
493
|
-
if (context === 'ticket-list') {
|
|
494
|
-
dispatch(getUserTickets({ page: ticketPage }));
|
|
495
|
-
} else {
|
|
496
|
-
dispatch(getUserOrders({ page: orderPage }));
|
|
497
|
-
dispatch(getTicketsByOrder({ orderId, page: orderTicketsCurrentPage }));
|
|
498
|
-
}
|
|
499
|
-
return removedTicket;
|
|
500
|
-
}).catch((e) => {
|
|
501
|
-
console.log('error', e)
|
|
502
|
-
dispatch(stopLoading());
|
|
503
|
-
return (e);
|
|
504
|
-
});
|
|
505
|
-
};
|
|
506
|
-
|
|
507
|
-
export const getTicketPDF = ({ ticket }) => async (dispatch, getState, { getAccessToken, apiBaseUrl, loginUrl }) => {
|
|
508
|
-
const accessToken = await getAccessToken().catch(() => {
|
|
509
|
-
dispatch(stopLoading());
|
|
510
|
-
console.log('REJECTING PROMISE AFTER STOP LOADING')
|
|
511
|
-
return Promise.reject();
|
|
512
|
-
});
|
|
513
|
-
|
|
514
|
-
if (!accessToken) return Promise.reject();
|
|
515
|
-
|
|
516
|
-
dispatch(startLoading());
|
|
517
|
-
|
|
518
|
-
const params = {
|
|
519
|
-
access_token: accessToken
|
|
520
|
-
};
|
|
521
|
-
|
|
522
|
-
const orderId = ticket.order ? ticket.order.id : ticket.order_id;
|
|
523
|
-
|
|
524
|
-
const queryString = objectToQueryString(params);
|
|
525
|
-
const apiUrl = `${apiBaseUrl}/api/v1/summits/all/orders/${orderId}/tickets/${ticket.id}/pdf?${queryString}`;
|
|
526
|
-
|
|
527
|
-
return fetch(apiUrl, { responseType: 'Blob', headers: { 'Content-Type': 'application/pdf' } })
|
|
528
|
-
.then((response) => {
|
|
529
|
-
if (!response.ok) {
|
|
530
|
-
dispatch(stopLoading());
|
|
531
|
-
throw response;
|
|
532
|
-
} else {
|
|
533
|
-
return response.blob();
|
|
534
|
-
}
|
|
535
|
-
})
|
|
536
|
-
.then((pdf) => {
|
|
537
|
-
dispatch(stopLoading());
|
|
538
|
-
let link = document.createElement('a');
|
|
539
|
-
const url = window.URL.createObjectURL(pdf);
|
|
540
|
-
link.href = url;
|
|
541
|
-
link.download = 'ticket.pdf';
|
|
542
|
-
link.dispatchEvent(new MouseEvent('click'));
|
|
543
|
-
})
|
|
544
|
-
.catch(customFetchErrorHandler);
|
|
545
|
-
};
|
|
546
|
-
|
|
547
|
-
export const refundTicket = ({ ticket, order }) => async (dispatch, getState, { getAccessToken, apiBaseUrl, loginUrl }) => {
|
|
548
|
-
const accessToken = await getAccessToken().catch(() => {
|
|
549
|
-
dispatch(stopLoading());
|
|
550
|
-
console.log('REJECTING PROMISE AFTER STOP LOADING')
|
|
551
|
-
return Promise.reject();
|
|
552
|
-
});
|
|
553
|
-
|
|
554
|
-
if (!accessToken) return Promise.reject();
|
|
555
|
-
|
|
556
|
-
dispatch(startLoading());
|
|
557
|
-
|
|
558
|
-
const {
|
|
559
|
-
orderState: { current_page: orderPage },
|
|
560
|
-
ticketState: { current_page: ticketPage }
|
|
561
|
-
} = getState();
|
|
562
|
-
|
|
563
|
-
const orderId = ticket.order ? ticket.order.id : ticket.order_id;
|
|
564
|
-
|
|
565
|
-
const params = {
|
|
566
|
-
access_token: accessToken
|
|
567
|
-
};
|
|
568
|
-
|
|
569
|
-
return deleteRequest(
|
|
570
|
-
null,
|
|
571
|
-
createAction(REFUND_TICKET),
|
|
572
|
-
`${apiBaseUrl}/api/v1/summits/all/orders/${orderId}/tickets/${ticket.id}/refund`,
|
|
573
|
-
{},
|
|
574
|
-
authErrorHandler
|
|
575
|
-
)(params)(dispatch).then((payload) => {
|
|
576
|
-
dispatch(stopLoading());
|
|
577
|
-
|
|
578
|
-
if (ticket.order_id) {
|
|
579
|
-
dispatch(getUserOrders({ page: orderPage }));
|
|
580
|
-
} else {
|
|
581
|
-
dispatch(getUserTickets({ page: ticketPage }));
|
|
582
|
-
}
|
|
583
|
-
}).catch(e => {
|
|
584
|
-
dispatch(stopLoading());
|
|
585
|
-
throw (e);
|
|
586
|
-
});
|
|
587
|
-
};
|
|
588
|
-
|
|
589
|
-
export const delegateTicket = ({
|
|
590
|
-
ticket,
|
|
591
|
-
context,
|
|
592
|
-
data: {
|
|
593
|
-
attendee_email,
|
|
594
|
-
attendee_first_name,
|
|
595
|
-
attendee_last_name,
|
|
596
|
-
attendee_company,
|
|
597
|
-
disclaimer_accepted,
|
|
598
|
-
extra_questions,
|
|
599
|
-
}
|
|
600
|
-
}) => async (dispatch, getState, { getAccessToken, apiBaseUrl, loginUrl }) => {
|
|
601
|
-
const accessToken = await getAccessToken().catch(() => {
|
|
602
|
-
dispatch(stopLoading());
|
|
603
|
-
console.log('REJECTING PROMISE AFTER STOP LOADING')
|
|
604
|
-
return Promise.reject();
|
|
605
|
-
});
|
|
606
|
-
|
|
607
|
-
if (!accessToken) return Promise.reject();
|
|
608
|
-
|
|
609
|
-
dispatch(startLoading());
|
|
610
|
-
|
|
611
|
-
const {
|
|
612
|
-
orderState: { current_page: orderPage },
|
|
613
|
-
ticketState: { current_page: ticketPage, orderTickets: { current_page : orderTicketsCurrentPage }},
|
|
614
|
-
summitState: { summit: { id : summitId } }
|
|
615
|
-
} = getState();
|
|
616
|
-
|
|
617
|
-
const orderId = ticket.order ? ticket.order.id : ticket.order_id;
|
|
618
|
-
|
|
619
|
-
const params = {
|
|
620
|
-
access_token: accessToken
|
|
621
|
-
};
|
|
622
|
-
|
|
623
|
-
const normalizedEntity = normalizeTicket({
|
|
624
|
-
attendee_email,
|
|
625
|
-
attendee_first_name,
|
|
626
|
-
attendee_last_name,
|
|
627
|
-
attendee_company,
|
|
628
|
-
disclaimer_accepted,
|
|
629
|
-
extra_questions
|
|
630
|
-
});
|
|
631
|
-
|
|
632
|
-
return putRequest(
|
|
633
|
-
null,
|
|
634
|
-
createAction(DELEGATE_TICKET),
|
|
635
|
-
`${apiBaseUrl}/api/v1/summits/${summitId}/orders/${orderId}/tickets/${ticket.id}/delegate`,
|
|
636
|
-
normalizedEntity,
|
|
637
|
-
authErrorHandler
|
|
638
|
-
)(params)(dispatch).then(() => {
|
|
639
|
-
dispatch(stopLoading());
|
|
640
|
-
// Note: refresh the list view after updating the ticket.
|
|
641
|
-
if (context === 'ticket-list') {
|
|
642
|
-
dispatch(getUserTickets({ page: ticketPage }));
|
|
643
|
-
} else {
|
|
644
|
-
dispatch(getUserOrders({ page: orderPage })).then(() =>
|
|
645
|
-
dispatch(getTicketsByOrder({ orderId: ticket.order_id, page: orderTicketsCurrentPage }))
|
|
646
|
-
);
|
|
647
|
-
}
|
|
648
|
-
}).catch(e => {
|
|
649
|
-
dispatch(stopLoading());
|
|
650
|
-
throw (e);
|
|
651
|
-
});
|
|
652
|
-
}
|
|
653
|
-
|
|
654
|
-
const normalizeTicket = (entity) => {
|
|
655
|
-
const normalizedEntity = {...entity};
|
|
656
|
-
|
|
657
|
-
if(!entity.attendee_company.id) {
|
|
658
|
-
normalizedEntity['attendee_company'] = entity.attendee_company.name;
|
|
659
|
-
} else {
|
|
660
|
-
delete(normalizedEntity['attendee_company']);
|
|
661
|
-
normalizedEntity['attendee_company_id'] = entity.attendee_company.id;
|
|
662
|
-
}
|
|
663
|
-
|
|
664
|
-
return normalizedEntity;
|
|
665
|
-
|
|
666
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2022
|
|
3
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
* you may not use this file except in compliance with the License.
|
|
5
|
-
* You may obtain a copy of the License at
|
|
6
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
8
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
9
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
10
|
-
* See the License for the specific language governing permissions and
|
|
11
|
-
* limitations under the License.
|
|
12
|
-
**/
|
|
13
|
-
import {createAction} from "openstack-uicore-foundation/lib/utils/actions";
|
|
14
|
-
|
|
15
|
-
export const UPDATE_CLOCK = 'UPDATE_CLOCK';
|
|
16
|
-
|
|
17
|
-
export const defaultCurrentTime = () => {
|
|
18
|
-
// fallback, depends on user clock better than nothing
|
|
19
|
-
return Math.round(+new Date() / 1000);
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export const updateClock = (timestamp) => (dispatch) => {
|
|
23
|
-
dispatch(createAction(UPDATE_CLOCK)({ timestamp }));
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export const getNow = () => (dispatch, getState) => {
|
|
27
|
-
let { timerState } = getState();
|
|
28
|
-
return timerState.nowUtc == null ? defaultCurrentTime() : timerState.nowUtc;
|
|
29
|
-
};
|