-
Notifications
You must be signed in to change notification settings - Fork 52
Expand file tree
/
Copy pathconstants.js
More file actions
603 lines (504 loc) · 22 KB
/
Copy pathconstants.js
File metadata and controls
603 lines (504 loc) · 22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
/**
* Constants used across the app
*/
export const {
COMMUNITY_APP_URL,
CHALLENGE_API_URL,
ENGAGEMENTS_API_URL,
ENGAGEMENTS_ROOT_API_URL,
APPLICATIONS_API_URL,
CHALLENGE_DEFAULT_REVIEWERS_URL,
COPILOTS_URL,
SUBMISSION_REVIEW_APP_URL,
SUBMISSIONS_API_URL,
STUDIO_URL,
CONNECT_APP_URL,
DIRECT_PROJECT_URL,
ONLINE_REVIEW_URL,
REVIEW_APP_URL,
DEFAULT_TERM_UUID,
DEFAULT_NDA_UUID,
SUBMITTER_ROLE_UUID,
DEV_TRACK_ID,
DES_TRACK_ID,
DS_TRACK_ID,
QA_TRACK_ID,
CP_TRACK_ID,
CHALLENGE_TYPE_ID,
MARATHON_TYPE_ID,
MULTI_ROUND_CHALLENGE_TEMPLATE_ID,
UNIVERSAL_NAV_URL,
HEADER_AUTH_URLS_HREF,
HEADER_AUTH_URLS_LOCATION,
API_V2,
API_V3,
API_V4,
API_V5,
API_V6,
SKILLS_V5_API_URL,
SKILLS_V5_SKILLS_URL,
UPDATE_SKILLS_V5_API_URL,
SALESFORCE_BILLING_ACCOUNT_LINK,
PROFILE_URL,
TC_FINANCE_API_URL,
TC_AI_API_BASE_URL,
TC_REVIEWS_API_BASE_URL,
TC_AI_SKILLS_EXTRACTION_WORKFLOW_ID,
TC_AI_AUTOWRITE_WORKFLOW_ID,
ENGAGEMENTS_APP_URL
} = process.env
export const CREATE_FORUM_TYPE_IDS = typeof process.env.CREATE_FORUM_TYPE_IDS === 'string' ? process.env.CREATE_FORUM_TYPE_IDS.split(',') : process.env.CREATE_FORUM_TYPE_IDS
export const PROJECTS_API_URL = process.env.PROJECTS_API_URL || process.env.PROJECT_API_URL
export const SKILLS_OPTIONAL_BILLING_ACCOUNT_IDS = ['80000062']
/**
* AI Workflow Service config
*/
export const AI_WORKFLOW_POLL_INTERVAL = 1000 // 1 second in milliseconds
export const AI_WORKFLOW_POLL_TIMEOUT = 5 * 60000 // 5 * 60 seconds in milliseconds
export const AI_SCREENING_PHASE_NAME = 'AI Screening'
/**
* Filepicker config
*/
// to be able to start the Connect App we should pass at least the dummy value for `FILE_PICKER_API_KEY`
// but if we want to test file uploading we should provide the real value in `FILE_PICKER_API_KEY` env variable
export const FILE_PICKER_API_KEY = process.env.FILE_PICKER_API_KEY || 'DUMMY'
export const FILE_PICKER_CONTAINER_NAME = process.env.FILE_PICKER_CONTAINER_NAME || 'tc-challenge-v5-dev'
export const FILE_PICKER_SUBMISSION_CONTAINER_NAME = process.env.FILE_PICKER_SUBMISSION_CONTAINER_NAME || 'submission-staging-dev'
export const PROJECT_ATTACHMENTS_FOLDER = process.env.PROJECT_ATTACHMENTS_FOLDER || 'PROJECT_ATTACHMENTS'
export const FILE_PICKER_REGION = process.env.FILE_PICKER_REGION || 'us-east-1'
export const FILE_PICKER_LOCATION = process.env.FILE_PICKER_LOCATION || 's3'
export const FILE_PICKER_CNAME = process.env.FILE_PICKER_CNAME || 'fs.topcoder.com'
export const FILE_PICKER_FROM_SOURCES = ['local_file_system', 'googledrive', 'dropbox']
export const ASSETS_FILE_PICKER_FROM_SOURCES = ['local_file_system']
export const ASSETS_FILE_PICKER_MAX_FILES = 4
export const FILE_PICKER_ACCEPT = ['.bmp', '.gif', '.jpg', '.tex', '.xls', '.xlsx', '.doc', '.docx', '.zip', '.txt', '.pdf', '.png', '.ppt', '.pptx', '.rtf', '.csv']
export const FILE_PICKER_MAX_FILES = 10
export const FILE_PICKER_MAX_SIZE = 500 * 1024 * 1024 // 500Mb
export const FILE_PICKER_PROGRESS_INTERVAL = 100
export const FILE_PICKER_UPLOAD_RETRY = 2
export const FILE_PICKER_UPLOAD_TIMEOUT = 30 * 60 * 1000 // 30 minutes
export const SPECIFICATION_ATTACHMENTS_FOLDER = 'SPECIFICATION_ATTACHMENTS'
export const MEMBERS_API_URL = process.env.MEMBER_API_URL
export const getAWSContainerFileURL = (key) => `https://${FILE_PICKER_CONTAINER_NAME}.s3.amazonaws.com/${key}`
// Actions
export const LOAD_PROJECTS_SUCCESS = 'LOAD_PROJECTS_SUCCESS'
export const LOAD_PROJECTS_PENDING = 'LOAD_PROJECTS_PENDING'
export const LOAD_PROJECTS_FAILURE = 'LOAD_PROJECTS_FAILURE'
export const UNLOAD_PROJECTS_SUCCESS = 'UNLOAD_PROJECTS_SUCCESS'
export const LOAD_ALL_USER_PROJECTS_SUCCESS = 'LOAD_ALL_USER_PROJECTS_SUCCESS'
export const LOAD_ALL_USER_PROJECTS_PENDING = 'LOAD_ALL_USER_PROJECTS_PENDING'
export const LOAD_ALL_USER_PROJECTS_FAILURE = 'LOAD_ALL_USER_PROJECTS_FAILURE'
export const SEARCH_USER_PROJECTS_SUCCESS = 'SEARCH_USER_PROJECTS_SUCCESS'
export const SEARCH_USER_PROJECTS_PENDING = 'SEARCH_USER_PROJECTS_PENDING'
export const SEARCH_USER_PROJECTS_FAILURE = 'SEARCH_USER_PROJECTS_FAILURE'
// project billingAccounts
export const LOAD_PROJECT_BILLING_ACCOUNTS = 'LOAD_PROJECT_BILLING_ACCOUNTS'
export const LOAD_PROJECT_BILLING_ACCOUNTS_PENDING = 'LOAD_PROJECT_BILLING_ACCOUNTS_PENDING'
export const LOAD_PROJECT_BILLING_ACCOUNTS_FAILURE = 'LOAD_PROJECT_BILLING_ACCOUNTS_FAILURE'
export const LOAD_PROJECT_BILLING_ACCOUNTS_SUCCESS = 'LOAD_PROJECT_BILLING_ACCOUNTS_SUCCESS'
// project billingAccount
export const LOAD_PROJECT_BILLING_ACCOUNT = 'LOAD_PROJECT_BILLING_ACCOUNT'
export const LOAD_PROJECT_BILLING_ACCOUNT_PENDING = 'LOAD_PROJECT_BILLING_ACCOUNT_PENDING'
export const LOAD_PROJECT_BILLING_ACCOUNT_FAILURE = 'LOAD_PROJECT_BILLING_ACCOUNT_FAILURE'
export const LOAD_PROJECT_BILLING_ACCOUNT_SUCCESS = 'LOAD_PROJECT_BILLING_ACCOUNT_SUCCESS'
export const LOAD_PROJECT_PHASES = 'LOAD_PROJECT_PHASES'
export const LOAD_PROJECT_PHASES_PENDING = 'LOAD_PROJECT_PHASES_PENDING'
export const LOAD_PROJECT_PHASES_FAILURE = 'LOAD_PROJECT_PHASES_FAILURE'
export const LOAD_PROJECT_PHASES_SUCCESS = 'LOAD_PROJECT_PHASES_SUCCESS'
export const SET_ACTIVE_PROJECT = 'SET_ACTIVE_PROJECT'
export const LOAD_USER_SUCCESS = 'LOAD_USER_SUCCESS'
export const LOAD_MEMBER_PENDING = 'LOAD_MEMBER_PENDING'
export const LOAD_MEMBER_SUCCESS = 'LOAD_MEMBER_SUCCESS'
export const LOAD_MEMBER_FAILURE = 'LOAD_MEMBER_FAILURE'
export const LOAD_CHALLENGES_SUCCESS = 'LOAD_CHALLENGES_SUCCESS'
export const LOAD_CHALLENGES_PENDING = 'LOAD_CHALLENGES_PENDING'
export const LOAD_CHALLENGES_FAILURE = 'LOAD_CHALLENGES_FAILURE'
export const UPDATE_CHALLENGES_SKILLS_SUCCESS = 'UPDATE_CHALLENGES_SKILLS_SUCCESS'
export const LOAD_CHALLENGE_DETAILS = 'LOAD_CHALLENGE_DETAILS'
export const LOAD_CHALLENGE_DETAILS_SUCCESS = 'LOAD_CHALLENGE_DETAILS_SUCCESS'
export const LOAD_CHALLENGE_DETAILS_PENDING = 'LOAD_CHALLENGE_DETAILS_PENDING'
export const LOAD_CHALLENGE_DETAILS_FAILURE = 'LOAD_CHALLENGE_DETAILS_FAILURE'
export const UPDATE_CHALLENGE_DETAILS_SUCCESS = 'UPDATE_CHALLENGE_DETAILS_SUCCESS'
export const UPDATE_CHALLENGE_DETAILS_PENDING = 'UPDATE_CHALLENGE_DETAILS_PENDING'
export const UPDATE_CHALLENGE_DETAILS_FAILURE = 'UPDATE_CHALLENGE_DETAILS_FAILURE'
export const CREATE_CHALLENGE_SUCCESS = 'CREATE_CHALLENGE_SUCCESS'
export const CREATE_CHALLENGE_PENDING = 'CREATE_CHALLENGE_PENDING'
export const CREATE_CHALLENGE_FAILURE = 'CREATE_CHALLENGE_FAILURE'
export const DELETE_CHALLENGE_SUCCESS = 'DELETE_CHALLENGE_SUCCESS'
export const DELETE_CHALLENGE_PENDING = 'DELETE_CHALLENGE_PENDING'
export const DELETE_CHALLENGE_FAILURE = 'DELETE_CHALLENGE_FAILURE'
// Engagement action types
export const LOAD_ENGAGEMENTS_PENDING = 'LOAD_ENGAGEMENTS_PENDING'
export const LOAD_ENGAGEMENTS_SUCCESS = 'LOAD_ENGAGEMENTS_SUCCESS'
export const LOAD_ENGAGEMENTS_FAILURE = 'LOAD_ENGAGEMENTS_FAILURE'
export const LOAD_ENGAGEMENT_DETAILS_PENDING = 'LOAD_ENGAGEMENT_DETAILS_PENDING'
export const LOAD_ENGAGEMENT_DETAILS_SUCCESS = 'LOAD_ENGAGEMENT_DETAILS_SUCCESS'
export const LOAD_ENGAGEMENT_DETAILS_FAILURE = 'LOAD_ENGAGEMENT_DETAILS_FAILURE'
export const CREATE_ENGAGEMENT_PENDING = 'CREATE_ENGAGEMENT_PENDING'
export const CREATE_ENGAGEMENT_SUCCESS = 'CREATE_ENGAGEMENT_SUCCESS'
export const CREATE_ENGAGEMENT_FAILURE = 'CREATE_ENGAGEMENT_FAILURE'
export const UPDATE_ENGAGEMENT_DETAILS_PENDING = 'UPDATE_ENGAGEMENT_DETAILS_PENDING'
export const UPDATE_ENGAGEMENT_DETAILS_SUCCESS = 'UPDATE_ENGAGEMENT_DETAILS_SUCCESS'
export const UPDATE_ENGAGEMENT_DETAILS_FAILURE = 'UPDATE_ENGAGEMENT_DETAILS_FAILURE'
export const DELETE_ENGAGEMENT_PENDING = 'DELETE_ENGAGEMENT_PENDING'
export const DELETE_ENGAGEMENT_SUCCESS = 'DELETE_ENGAGEMENT_SUCCESS'
export const DELETE_ENGAGEMENT_FAILURE = 'DELETE_ENGAGEMENT_FAILURE'
export const CREATE_PAYMENT_PENDING = 'CREATE_PAYMENT_PENDING'
export const CREATE_PAYMENT_SUCCESS = 'CREATE_PAYMENT_SUCCESS'
export const CREATE_PAYMENT_FAILURE = 'CREATE_PAYMENT_FAILURE'
export const FETCH_ASSIGNMENT_PAYMENTS_PENDING = 'FETCH_ASSIGNMENT_PAYMENTS_PENDING'
export const FETCH_ASSIGNMENT_PAYMENTS_SUCCESS = 'FETCH_ASSIGNMENT_PAYMENTS_SUCCESS'
export const FETCH_ASSIGNMENT_PAYMENTS_FAILURE = 'FETCH_ASSIGNMENT_PAYMENTS_FAILURE'
// Application action types
export const LOAD_APPLICATIONS_PENDING = 'LOAD_APPLICATIONS_PENDING'
export const LOAD_APPLICATIONS_SUCCESS = 'LOAD_APPLICATIONS_SUCCESS'
export const LOAD_APPLICATIONS_FAILURE = 'LOAD_APPLICATIONS_FAILURE'
export const LOAD_APPLICATION_DETAILS_PENDING = 'LOAD_APPLICATION_DETAILS_PENDING'
export const LOAD_APPLICATION_DETAILS_SUCCESS = 'LOAD_APPLICATION_DETAILS_SUCCESS'
export const LOAD_APPLICATION_DETAILS_FAILURE = 'LOAD_APPLICATION_DETAILS_FAILURE'
export const UPDATE_APPLICATION_STATUS_PENDING = 'UPDATE_APPLICATION_STATUS_PENDING'
export const UPDATE_APPLICATION_STATUS_SUCCESS = 'UPDATE_APPLICATION_STATUS_SUCCESS'
export const UPDATE_APPLICATION_STATUS_FAILURE = 'UPDATE_APPLICATION_STATUS_FAILURE'
export const LOAD_PROJECT_DETAILS = 'LOAD_PROJECT_DETAILS'
export const LOAD_PROJECT_DETAILS_SUCCESS = 'LOAD_PROJECT_DETAILS_SUCCESS'
export const LOAD_PROJECT_DETAILS_PENDING = 'LOAD_PROJECT_DETAILS_PENDING'
export const LOAD_PROJECT_DETAILS_FAILURE = 'LOAD_PROJECT_DETAILS_FAILURE'
export const CLEAR_PROJECT_DETAIL = 'CLEAR_PROJECT_DETAIL'
export const UPDATE_PROJECT_DETAILS = 'UPDATE_PROJECT_DETAILS'
export const UPDATE_PROJECT_DETAILS_SUCCESS = 'UPDATE_PROJECT_DETAILS_SUCCESS'
export const UPDATE_PROJECT_DETAILS_PENDING = 'UPDATE_PROJECT_DETAILS_PENDING'
export const UPDATE_PROJECT_DETAILS_FAILURE = 'UPDATE_PROJECT_DETAILS_FAILURE'
export const UPDATE_PROJECT_ROLE_FOR_MEMBER_SUCCESS = 'UPDATE_PROJECT_ROLE_FOR_MEMBER_SUCCESS'
export const LOAD_CHALLENGE_SUBMISSIONS = 'LOAD_CHALLENGE_SUBMISSIONS'
export const LOAD_CHALLENGE_SUBMISSIONS_SUCCESS = 'LOAD_CHALLENGE_SUBMISSIONS_SUCCESS'
export const LOAD_CHALLENGE_SUBMISSIONS_PENDING = 'LOAD_CHALLENGE_SUBMISSIONS_PENDING'
export const LOAD_CHALLENGE_SUBMISSIONS_FAILURE = 'LOAD_CHALLENGE_SUBMISSIONS_FAILURE'
export const LOAD_CHALLENGE_MEMBERS = 'LOAD_CHALLENGE_MEMBERS'
export const LOAD_CHALLENGE_MEMBERS_SUCCESS = 'LOAD_CHALLENGE_MEMBERS_SUCCESS'
export const LOAD_CHALLENGE_METADATA_SUCCESS = 'LOAD_CHALLENGE_METADATA_SUCCESS'
export const SAVE_AUTH_TOKEN = 'SAVE_AUTH_TOKEN'
export const CREATE_ATTACHMENT_PENDING = 'CREATE_ATTACHMENT_PENDING'
export const CREATE_ATTACHMENT_FAILURE = 'CREATE_ATTACHMENT_FAILURE'
export const CREATE_ATTACHMENT_SUCCESS = 'CREATE_ATTACHMENT_SUCCESS'
export const REMOVE_ATTACHMENT_PENDING = 'REMOVE_ATTACHMENT_PENDING'
export const REMOVE_ATTACHMENT_FAILURE = 'REMOVE_ATTACHMENT_FAILURE'
export const REMOVE_ATTACHMENT_SUCCESS = 'REMOVE_ATTACHMENT_SUCCESS'
export const LOAD_CHALLENGE_RESOURCES = 'LOAD_CHALLENGE_RESOURCES'
export const LOAD_CHALLENGE_RESOURCES_SUCCESS = 'LOAD_CHALLENGE_RESOURCES_SUCCESS'
export const LOAD_CHALLENGE_RESOURCES_PENDING = 'LOAD_CHALLENGE_RESOURCES_PENDING'
export const LOAD_CHALLENGE_RESOURCES_FAILURE = 'LOAD_CHALLENGE_RESOURCES_FAILURE'
export const CREATE_CHALLENGE_RESOURCE = 'CREATE_CHALLENGE_RESOURCE'
export const CREATE_CHALLENGE_RESOURCE_SUCCESS = 'CREATE_CHALLENGE_RESOURCE_SUCCESS'
export const CREATE_CHALLENGE_RESOURCE_PENDING = 'CREATE_CHALLENGE_RESOURCE_PENDING'
export const CREATE_CHALLENGE_RESOURCE_FAILURE = 'CREATE_CHALLENGE_RESOURCE_FAILURE'
export const DELETE_CHALLENGE_RESOURCE = 'DELETE_CHALLENGE_RESOURCE'
export const DELETE_CHALLENGE_RESOURCE_SUCCESS = 'DELETE_CHALLENGE_RESOURCE_SUCCESS'
export const DELETE_CHALLENGE_RESOURCE_PENDING = 'DELETE_CHALLENGE_RESOURCE_PENDING'
export const DELETE_CHALLENGE_RESOURCE_FAILURE = 'DELETE_CHALLENGE_RESOURCE_FAILURE'
export const SET_FILTER_CHALLENGE_VALUE = 'SET_FILTER_CHALLENGE_VALUE'
export const RESET_SIDEBAR_ACTIVE_PARAMS = 'RESET_SIDEBAR_ACTIVE_PARAMS'
export const BETA_MODE_COOKIE_TAG = 'beta-mode'
export const LOAD_PROJECT_TYPES = 'LOAD_PROJECT_TYPES'
export const LOAD_PROJECT_TYPES_SUCCESS = 'LOAD_PROJECT_TYPES_SUCCESS'
export const LOAD_PROJECT_TYPES_PENDING = 'LOAD_PROJECT_TYPES_PENDING'
export const LOAD_PROJECT_TYPES_FAILURE = 'LOAD_PROJECT_TYPES_FAILURE'
export const LOAD_PROJECT_INVITES = 'LOAD_PROJECT_INVITES'
export const LOAD_PROJECT_INVITES_SUCCESS = 'LOAD_PROJECT_INVITES_SUCCESS'
export const LOAD_PROJECT_INVITES_PENDING = 'LOAD_PROJECT_INVITES_PENDING'
export const LOAD_PROJECT_INVITES_FAILURE = 'LOAD_PROJECT_INVITES_FAILURE'
export const CREATE_PROJECT = 'CREATE_PROJECT'
export const CREATE_PROJECT_PENDING = 'CREATE_PROJECT_PENDING'
export const CREATE_PROJECT_SUCCESS = 'CREATE_PROJECT_SUCCESS'
export const CREATE_PROJECT_FAILURE = 'CREATE_PROJECT_FAILURE'
export const ADD_PROJECT_ATTACHMENT_SUCCESS = 'ADD_PROJECT_ATTACHMENT_SUCCESS'
export const UPDATE_PROJECT_ATTACHMENT_SUCCESS = 'UPDATE_PROJECT_ATTACHMENT_SUCCESS'
export const REMOVE_PROJECT_ATTACHMENT_SUCCESS = 'REMOVE_PROJECT_ATTACHMENT_SUCCESS'
export const UPDATE_PROJECT = 'UPDATE_PROJECT'
export const UPDATE_PROJECT_PENDING = 'UPDATE_PROJECT_PENDING'
export const UPDATE_PROJECT_SUCCESS = 'UPDATE_PROJECT_SUCCESS'
export const UPDATE_PROJECT_FAILURE = 'UPDATE_PROJECT_FAILURE'
export const PROJECT_MEMBER_INVITE_STATUS_ACCEPTED = 'accepted'
export const PROJECT_MEMBER_INVITE_STATUS_REFUSED = 'refused'
export const PROJECT_MEMBER_INVITE_STATUS_CANCELED = 'canceled'
export const PROJECT_MEMBER_INVITE_STATUS_PENDING = 'pending'
export const PROJECT_MEMBER_INVITE_STATUS_REQUESTED = 'requested'
export const PROJECT_MEMBER_INVITE_STATUS_REQUEST_APPROVED = 'request_approved'
export const PROJECT_MEMBER_INVITE_STATUS_REQUEST_REJECTED = 'request_rejected'
// Groups action types
export const BULK_SEARCH_MEMBERS_PENDING = 'BULK_SEARCH_MEMBERS_PENDING'
export const BULK_SEARCH_MEMBERS_PROGRESS = 'BULK_SEARCH_MEMBERS_PROGRESS'
export const BULK_SEARCH_MEMBERS_SUCCESS = 'BULK_SEARCH_MEMBERS_SUCCESS'
export const BULK_SEARCH_MEMBERS_FAILURE = 'BULK_SEARCH_MEMBERS_FAILURE'
export const BULK_SEARCH_MEMBERS_CHUNK_SIZE = 7
export const BULK_CREATE_GROUP_PENDING = 'BULK_CREATE_GROUP_PENDING'
export const BULK_CREATE_GROUP_SUCCESS = 'BULK_CREATE_GROUP_SUCCESS'
export const BULK_CREATE_GROUP_FAILURE = 'BULK_CREATE_GROUP_FAILURE'
export const RESET_GROUPS_STATE = 'RESET_GROUPS_STATE'
// Name of challenge tracks
export const CHALLENGE_TRACKS = {
DESIGN: DES_TRACK_ID,
DEVELOP: DEV_TRACK_ID,
DATA_SCIENCE: DS_TRACK_ID,
QA: QA_TRACK_ID,
COMPETITIVE_PROGRAMMING: CP_TRACK_ID
}
// List of challenge phase statuses
export const PHASE_STATUS = {
CLOSED: 'Closed',
OPEN: 'Open',
SCHEDULED: 'Scheduled'
}
// List of prize sets types
export const PRIZE_SETS_TYPE = {
CHALLENGE_PRIZES: 'PLACEMENT',
COPILOT_PAYMENT: 'COPILOT',
REVIEWER_PAYMENT: 'REVIEWER',
CHECKPOINT_PRIZES: 'CHECKPOINT'
}
export const REVIEW_TYPES = {
INTERNAL: 'INTERNAL',
COMMUNITY: 'COMMUNITY'
}
export const REVIEW_OPPORTUNITY_TYPES = {
REGULAR_REVIEW: 'REGULAR_REVIEW',
COMPONENT_DEV_REVIEW: 'COMPONENT_DEV_REVIEW',
SPEC_REVIEW: 'SPEC_REVIEW',
ITERATIVE_REVIEW: 'ITERATIVE_REVIEW',
SCENARIOS_REVIEW: 'SCENARIOS_REVIEW'
}
export const REVIEW_OPPORTUNITY_TYPE_LABELS = {
[REVIEW_OPPORTUNITY_TYPES.REGULAR_REVIEW]: 'Regular Review',
[REVIEW_OPPORTUNITY_TYPES.COMPONENT_DEV_REVIEW]: 'Component Dev Review',
[REVIEW_OPPORTUNITY_TYPES.SPEC_REVIEW]: 'Spec Review',
[REVIEW_OPPORTUNITY_TYPES.ITERATIVE_REVIEW]: 'Iterative Review',
[REVIEW_OPPORTUNITY_TYPES.SCENARIOS_REVIEW]: 'Scenarios Review'
}
export const ROUND_TYPES = {
'SINGLE_ROUND': 'Single round',
'TWO_ROUNDS': 'Two rounds'
}
export const DESIGN_CHALLENGE_TYPES = [
'Application Front-End Design',
'Print/Presentation',
'Web Design',
'Widget or Mobile Screen Design',
'Wireframes'
]
// List of subtracks that should be considered as Marathon Matches
export const MARATHON_MATCH_SUBTRACKS = [
'DEVELOP_MARATHON_MATCH'
]
export const PROJECT_ROLES = {
READ: 'observer',
CUSTOMER: 'customer',
WRITE: 'customer',
MANAGER: 'manager',
COPILOT: 'copilot'
}
export const ALLOWED_DOWNLOAD_SUBMISSIONS_ROLES = [
'administrator',
PROJECT_ROLES.MANAGER,
PROJECT_ROLES.COPILOT,
PROJECT_ROLES.WRITE
]
export const ALLOWED_EDIT_RESOURCE_ROLES = [
'administrator',
PROJECT_ROLES.MANAGER,
PROJECT_ROLES.COPILOT
]
export const CHALLENGE_STATUS = {
ACTIVE: 'ACTIVE',
NEW: 'NEW',
DRAFT: 'DRAFT',
APPROVED: 'APPROVED',
COMPLETED: 'COMPLETED',
CANCELLED: 'CANCELLED',
CANCELLED_FAILED_REVIEW: 'CANCELLED_FAILED_REVIEW',
CANCELLED_FAILED_SCREENING: 'CANCELLED_FAILED_SCREENING',
CANCELLED_ZERO_SUBMISSIONS: 'CANCELLED_ZERO_SUBMISSIONS',
CANCELLED_WINNER_UNRESPONSIVE: 'CANCELLED_WINNER_UNRESPONSIVE',
CANCELLED_CLIENT_REQUEST: 'CANCELLED_CLIENT_REQUEST',
CANCELLED_REQUIREMENTS_INFEASIBLE: 'CANCELLED_REQUIREMENTS_INFEASIBLE',
CANCELLED_ZERO_REGISTRATIONS: 'CANCELLED_ZERO_REGISTRATIONS'
}
export const getTCMemberURL = (handle) => `${COMMUNITY_APP_URL}/members/${handle}`
export const SYSTEM_USERS = [
'TC System',
'Applications'
]
export const VALIDATION_VALUE_TYPE = {
NUMBER: 'number',
INTEGER: 'integer',
STRING: 'string'
}
export const CHALLENGE_PRIZE_TYPE = {
USD: 'USD',
POINT: 'POINT'
}
export const ALLOWED_USER_ROLES = [
'copilot',
'administrator',
'connect admin',
'connect manager',
'connect copilot',
'project manager',
'topcoder project manager',
'talent manager',
'topcoder talent manager',
'task manager',
'topcoder user',
'topcoder task manager'
]
export const READ_ONLY_ROLES = [
'topcoder user'
]
export const ADMIN_ROLES = [
'administrator'
]
export const COPILOT_ROLES = [
'copilot'
]
export const MANAGER_ROLES = [
'project manager',
'topcoder project manager',
'talent manager',
'topcoder talent manager'
]
export const TASK_MANAGER_ROLES = [
'topcoder task manager',
'task manager',
'topcoder talent manager',
'talent manager'
]
export const downloadAttachmentURL = (challengeId, attachmentId, token) =>
`${CHALLENGE_API_URL}/${challengeId}/attachments/${attachmentId}/download?token=${token}`
export const PAGE_SIZE = 10
export const PROJECTS_PAGE_SIZE = 20
export const ENGAGEMENTS_PAGE_SIZE = 20
/**
* The minimal number of characters to enter before starting showing autocomplete suggestions
*/
export const AUTOCOMPLETE_MIN_LENGTH = 3
/**
* Debounce timeout in ms for calling API for getting autocomplete suggestions
*/
export const AUTOCOMPLETE_DEBOUNCE_TIME_MS = 150
/**
* Number of groups to retrieve for group dropdown
*/
export const GROUPS_DROPDOWN_PER_PAGE = 1000000 // make sure we are getting all the groups with one request
/**
* The list of challenge types which can have multiple prizes
*/
export const CHALLENGE_TYPES_WITH_MULTIPLE_PRIZES = ['Challenge', 'Marathon Match']
/**
* All the repeating messages.
*
* To have the same wording across the app.
*/
export const MESSAGE = {
NO_TASK_ASSIGNEE: 'Task is not assigned yet',
TASK_CLOSE_SUCCESS: 'Task closed successfully',
CHALLENGE_LAUNCH_SUCCESS: 'Challenge activated successfully',
COMMUNITY_REVIEW_DISABLED: 'Community review is NOT available for Design challenges',
INTERNAL_REVIEW_DISABLED: 'Internal review is NOT available for QA challenges',
MARK_COMPLETE: 'This will close the task and generate a payment for the assignee and copilot.'
}
export const PROJECT_ACCESS_DENIED_MESSAGE = 'You don’t have access to this project. Please contact {linkComponent}'
/**
* Challenge cancel reasons
*/
export const CANCEL_REASONS = [
'CANCELLED_FAILED_REVIEW',
'CANCELLED_FAILED_SCREENING',
'CANCELLED_ZERO_SUBMISSIONS',
'CANCELLED_WINNER_UNRESPONSIVE',
'CANCELLED_CLIENT_REQUEST',
'CANCELLED_REQUIREMENTS_INFEASIBLE',
'CANCELLED_ZERO_REGISTRATIONS'
]
/**
* System reviewers
*/
export const SystemReviewers = {
Default: 'TC System'
}
/**
* Milestone product details
*/
export const GENERIC_PROJECT_MILESTONE_PRODUCT_TYPE = 'generic-product'
export const GENERIC_PROJECT_MILESTONE_PRODUCT_NAME = 'Generic Product'
export const PHASE_PRODUCT_TEMPLATE_ID = 67
export const PHASE_PRODUCT_CHALLENGE_ID_FIELD = 'details.challengeGuid'
/*
* Possible statuses of project milestones
*/
export const MILESTONE_STATUS = {
UNPLANNED: 'in_review',
PLANNED: 'reviewed',
ACTIVE: 'active',
BLOCKED: 'paused',
COMPLETED: 'completed',
CANCELLED: 'cancelled'
}
export const MULTI_ROUND_CHALLENGE_DESC_TEMPLATE = '\n\n### ROUND 1\n' +
'**Submit your initial designs for checkpoint feedback**\n\n' +
'### ROUND 2\n' +
'**Submit your final designs with all checkpoint feedback implemented**\n\n' +
'### CHALLENGE DESCRIPTION'
export const MAX_CHECKPOINT_PRIZE_COUNT = 8
export const DEFAULT_CHECKPOINT_PRIZE = 50
export const DEFAULT_CHECKPOINT_PRIZE_COUNT = 5
export const PAGINATION_PER_PAGE_OPTIONS = [
{ label: '5', value: '5' },
{ label: '10', value: '10' },
{ label: '25', value: '25' },
{ label: '50', value: '50' }
]
export const SPECIAL_CHALLENGE_TAGS = [
'Marathon Match',
'Rapid Development Match'
]
/**
* Possible statuses of projects
*/
export const PROJECT_STATUSES = [
{ label: 'Draft', value: 'draft' },
{ label: 'Active', value: 'active' },
{ label: 'In Review', value: 'in_review' },
{ label: 'Reviewed', value: 'reviewed' },
{ label: 'Completed', value: 'completed' },
{ label: 'Cancelled', value: 'cancelled' },
{ label: 'Paused', value: 'paused' }
]
export const PROJECT_STATUS = {
ACTIVE: 'active',
IN_REVIEW: 'in_review',
REVIEWED: 'reviewed',
COMPLETED: 'completed',
CANCELLED: 'cancelled',
PAUSED: 'paused'
}
export const JOB_ROLE_OPTIONS = [
{ value: null, label: 'Select Role' },
{ value: 'designer', label: 'Designer' },
{ value: 'software-developer', label: 'Software Developer' },
{ value: 'data-scientist', label: 'Data Scientist' },
{ value: 'data-engineer', label: 'Data Engineer' }
]
export const JOB_WORKLOAD_OPTIONS = [
{ value: null, label: 'Select Workload' },
{ value: 'fulltime', label: 'Full-Time' },
{ value: 'fractional', label: 'Fractional' }
]
/*
* Project Attachment types
*/
export const ATTACHMENT_TYPE_FILE = 'file'
export const ATTACHMENT_TYPE_LINK = 'link'
/**
* Project assets shared with type text
*/
export const PROJECT_ASSETS_SHARED_WITH_ALL_MEMBERS = 'All Project Members'
export const PROJECT_ASSETS_SHARED_WITH_ADMIN = 'Only Admins'
export const PROJECT_TYPE_TAAS = 'talent-as-a-service'