5htp 0.3.8 → 0.4.0
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 +1 -1
- package/src/compiler/common/babel/routes/routes.ts +13 -2
- package/src/compiler/common/index.ts +3 -1
- package/src/compiler/common/plugins/indexage/icones-svg/index.ts +3 -3
- package/src/compiler/index.ts +34 -12
- package/skeleton/Dockerfile +0 -20
- package/skeleton/docker-compose.yml +0 -37
- package/skeleton/identity.yaml +0 -21
- package/skeleton/package.json +0 -48
- package/skeleton/src/client/assets/identity/logo.svg +0 -14
- package/skeleton/src/client/assets/identity/logoAndText.svg +0 -10
- package/skeleton/src/client/assets/identity/logoAndTextBlack.svg +0 -11
- package/skeleton/src/client/assets/illustration/landing/banner.webp +0 -0
- package/skeleton/src/client/assets/illustration/landing/candidate/employers.webp +0 -0
- package/skeleton/src/client/assets/illustration/landing/candidate/hero.webp +0 -0
- package/skeleton/src/client/assets/illustration/landing/candidate/mentors.webp +0 -0
- package/skeleton/src/client/assets/illustration/landing/headhunter/hero.webp +0 -0
- package/skeleton/src/client/assets/illustration/landing/hero.jpeg +0 -0
- package/skeleton/src/client/assets/illustration/landing/hero.webp +0 -0
- package/skeleton/src/client/assets/illustration/landing/hero.xcf +0 -0
- package/skeleton/src/client/assets/illustration/landing/recruiter/onboarding.webp +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/andre.png +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/emma.png +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/fei.png +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/gaetan.png +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/jordan.png +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/lery.png +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/mehdi.png +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/omkar.png +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/thibaut.png +0 -0
- package/skeleton/src/client/assets/illustration/launch.jpg +0 -0
- package/skeleton/src/client/assets/img/background/header-blur.png +0 -0
- package/skeleton/src/client/assets/img/partners/citron.svg +0 -987
- package/skeleton/src/client/assets/logos/google-play-store.svg +0 -1
- package/skeleton/src/client/assets/logos/googleauth.svg +0 -9
- package/skeleton/src/client/assets/patterns/dots.png +0 -0
- package/skeleton/src/client/assets/patterns/interlaced.png +0 -0
- package/skeleton/src/client/assets/theme.less +0 -231
- package/skeleton/src/client/assets/vars.less +0 -54
- package/skeleton/src/client/context.ts +0 -23
- package/skeleton/src/client/index.ts +0 -59
- package/skeleton/src/client/pages/_messages/400.tsx +0 -45
- package/skeleton/src/client/pages/_messages/401.tsx +0 -39
- package/skeleton/src/client/pages/_messages/403.tsx +0 -43
- package/skeleton/src/client/pages/_messages/404.tsx +0 -42
- package/skeleton/src/client/pages/_messages/500.tsx +0 -42
- package/skeleton/src/client/pages/platform/Header.less +0 -12
- package/skeleton/src/client/pages/platform/Header.tsx +0 -119
- package/skeleton/src/client/pages/platform/_layout/index.less +0 -118
- package/skeleton/src/client/pages/platform/_layout/index.tsx +0 -131
- package/skeleton/src/client/pages/platform/_layout/mobile.less +0 -114
- package/skeleton/src/client/pages/platform/_page.tsx +0 -54
- package/skeleton/src/client/pages/platform/headhunters/index.tsx +0 -88
- package/skeleton/src/client/pages/platform/index.tsx +0 -58
- package/skeleton/src/client/pages/platform/missions/index.tsx +0 -149
- package/skeleton/src/client/pages/preload.json +0 -3
- package/skeleton/src/client/services/metrics/index.ts +0 -59
- package/skeleton/src/client/tsconfig.json +0 -31
- package/skeleton/src/common/config/router.ts +0 -16
- package/skeleton/src/common/forms/company/bookCall.ts +0 -25
- package/skeleton/src/common/forms/company/importJob.ts +0 -26
- package/skeleton/src/common/forms/company/signup.ts +0 -31
- package/skeleton/src/common/forms/headhunter/feedback.ts +0 -31
- package/skeleton/src/common/forms/headhunter/mission/cancel.ts +0 -26
- package/skeleton/src/common/forms/headhunter/mission/candidate/availability.ts +0 -31
- package/skeleton/src/common/forms/headhunter/mission/candidate/education.ts +0 -19
- package/skeleton/src/common/forms/headhunter/mission/candidate/identity.ts +0 -31
- package/skeleton/src/common/forms/headhunter/mission/candidate/others.ts +0 -19
- package/skeleton/src/common/forms/headhunter/mission/candidate/skills.ts +0 -21
- package/skeleton/src/common/forms/headhunter/mission/reject.ts +0 -23
- package/skeleton/src/common/forms/headhunter/mission/search.ts +0 -78
- package/skeleton/src/common/forms/headhunter/signup.ts +0 -34
- package/skeleton/src/common/libs/headhunter/candidate/index.ts +0 -155
- package/skeleton/src/common/libs/headhunter/mission/index.ts +0 -30
- package/skeleton/src/common/libs/hub/index.ts +0 -41
- package/skeleton/src/common/tsconfig.json +0 -10
- package/skeleton/src/server/config/communication.ts +0 -48
- package/skeleton/src/server/config/crosspath.ts +0 -9
- package/skeleton/src/server/config/data.ts +0 -34
- package/skeleton/src/server/config/database.ts +0 -26
- package/skeleton/src/server/config/internal.ts +0 -21
- package/skeleton/src/server/config/user.ts +0 -90
- package/skeleton/src/server/index.ts +0 -111
- package/skeleton/src/server/libs/utils/slug.ts +0 -11
- package/skeleton/src/server/routes/global.ts +0 -33
- package/skeleton/src/server/routes/headhunters.ts +0 -24
- package/skeleton/src/server/routes/missions.ts +0 -50
- package/skeleton/src/server/services/Headhunter/index.ts +0 -127
- package/skeleton/src/server/services/Headhunter/service.json +0 -6
- package/skeleton/src/server/services/Mission/index.ts +0 -174
- package/skeleton/src/server/services/Mission/service.json +0 -6
- package/skeleton/src/server/services/email/sendgrid/index.ts +0 -97
- package/skeleton/src/server/services/email/sendgrid/service.json +0 -6
- package/skeleton/src/server/services/slack/index.ts +0 -105
- package/skeleton/src/server/services/slack/service.json +0 -6
- package/skeleton/src/server/services/users/index.ts +0 -133
- package/skeleton/src/server/services/users/service.json +0 -6
- package/skeleton/src/server/tsconfig.json +0 -32
- package/skeleton/var/typings/routes.d.ts +0 -541
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Npm
|
|
6
|
-
import React from 'react';
|
|
7
|
-
import dayjs from 'dayjs';
|
|
8
|
-
|
|
9
|
-
// Core
|
|
10
|
-
import { Router } from '@app';
|
|
11
|
-
import { Button, Table } from '@client/components';
|
|
12
|
-
import { hello } from '@common/data/chaines/greetings';
|
|
13
|
-
|
|
14
|
-
// App components
|
|
15
|
-
import Header from '@/client/pages/platform/Header';
|
|
16
|
-
|
|
17
|
-
// App
|
|
18
|
-
import Page from '../_page';
|
|
19
|
-
|
|
20
|
-
/*----------------------------------
|
|
21
|
-
- TYPES
|
|
22
|
-
----------------------------------*/
|
|
23
|
-
|
|
24
|
-
import type { AcceptedMission, Mission } from '@/server/models';
|
|
25
|
-
|
|
26
|
-
export type TApplicationAction = 'approve'|'reject'
|
|
27
|
-
|
|
28
|
-
/*----------------------------------
|
|
29
|
-
- CONTROLEUR
|
|
30
|
-
----------------------------------*/
|
|
31
|
-
Router.page('/missions', ({ user, api, modal, toast }) => {
|
|
32
|
-
|
|
33
|
-
/*----------------------------------
|
|
34
|
-
- INIT
|
|
35
|
-
----------------------------------*/
|
|
36
|
-
|
|
37
|
-
const { missions, applications } = api.fetch({
|
|
38
|
-
|
|
39
|
-
missions: api.get<Mission[]>('/missions'),
|
|
40
|
-
|
|
41
|
-
applications: api.get<AcceptedMission[]>('/missions/applications'),
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
const [missionId, setMissionId] = React.useState(null);
|
|
45
|
-
|
|
46
|
-
/*----------------------------------
|
|
47
|
-
- ACTIONS
|
|
48
|
-
----------------------------------*/
|
|
49
|
-
|
|
50
|
-
// Update filters
|
|
51
|
-
React.useEffect(() => {
|
|
52
|
-
|
|
53
|
-
api.reload(['applications'], { missionId });
|
|
54
|
-
|
|
55
|
-
}, [missionId]);
|
|
56
|
-
|
|
57
|
-
const confirmAction = (action: TApplicationAction, a: AcceptedMission) =>
|
|
58
|
-
modal.confirm("Accept this application?", <>
|
|
59
|
-
You're about to accept the following headhunter application:
|
|
60
|
-
|
|
61
|
-
<ul class="col liste">
|
|
62
|
-
<li>Headhunter: {a.headhunter}</li>
|
|
63
|
-
<li>Mission: {a.mission}</li>
|
|
64
|
-
</ul>
|
|
65
|
-
|
|
66
|
-
If you approve, the headhunter will get notified of your approval and will be able to submit candidates for this mission.
|
|
67
|
-
<br />
|
|
68
|
-
Do you want to continue?
|
|
69
|
-
</>).then( shouldAccept => shouldAccept &&
|
|
70
|
-
runAction(action, a)
|
|
71
|
-
)
|
|
72
|
-
|
|
73
|
-
const runAction = (action: TApplicationAction, a: AcceptedMission) =>
|
|
74
|
-
api.post('/missions/applications/' + action, {
|
|
75
|
-
missionId: a.missionId,
|
|
76
|
-
headhunterId: a.headhunterId,
|
|
77
|
-
}).then(() => {
|
|
78
|
-
toast.success("You approved the application. The Headhunter will be notified.");
|
|
79
|
-
api.reload('applications');
|
|
80
|
-
})
|
|
81
|
-
|
|
82
|
-
/*----------------------------------
|
|
83
|
-
- RENDER
|
|
84
|
-
----------------------------------*/
|
|
85
|
-
return (
|
|
86
|
-
<Page title="CrossPath - CSM Dashboard">
|
|
87
|
-
|
|
88
|
-
<Header title={<>
|
|
89
|
-
Missions
|
|
90
|
-
</>} />
|
|
91
|
-
|
|
92
|
-
<div class="row al-top">
|
|
93
|
-
|
|
94
|
-
<aside class="w-3 col">
|
|
95
|
-
|
|
96
|
-
<h2>Your Missions</h2>
|
|
97
|
-
|
|
98
|
-
<ul class="col menu">
|
|
99
|
-
<li>
|
|
100
|
-
<Button nav active={missionId === null}
|
|
101
|
-
onClick={() => setMissionId(null)}>
|
|
102
|
-
All Missions
|
|
103
|
-
</Button>
|
|
104
|
-
</li>
|
|
105
|
-
|
|
106
|
-
{missions.map( m => (
|
|
107
|
-
<li>
|
|
108
|
-
<Button nav active={m.airtableId === missionId}
|
|
109
|
-
onClick={() => setMissionId( m.airtableId )}>
|
|
110
|
-
{m.title}
|
|
111
|
-
</Button>
|
|
112
|
-
</li>
|
|
113
|
-
))}
|
|
114
|
-
</ul>
|
|
115
|
-
|
|
116
|
-
</aside>
|
|
117
|
-
|
|
118
|
-
<div class="col-1 col">
|
|
119
|
-
|
|
120
|
-
<h2>Headhunters Applications</h2>
|
|
121
|
-
|
|
122
|
-
<Table className="card" data={applications} columns={(a) => ([{
|
|
123
|
-
label: "Headhunter",
|
|
124
|
-
cell: a.headhunter
|
|
125
|
-
},{
|
|
126
|
-
label: "Mission",
|
|
127
|
-
cell: a.mission
|
|
128
|
-
},{
|
|
129
|
-
label: "Date Applied",
|
|
130
|
-
cell: dayjs(a.dateStart).format('DD/MM/YYYY HH:mm')
|
|
131
|
-
},{
|
|
132
|
-
label: "Actions",
|
|
133
|
-
cell: (
|
|
134
|
-
<div class='row sp-05 al-right'>
|
|
135
|
-
<Button size="s" class='bg success' icon="check"
|
|
136
|
-
onClick={() => confirmAction('approve', a)} />
|
|
137
|
-
<Button size="s" class='bg error' icon="times"
|
|
138
|
-
onClick={() => confirmAction('reject', a)} />
|
|
139
|
-
</div>
|
|
140
|
-
)
|
|
141
|
-
}])} />
|
|
142
|
-
|
|
143
|
-
</div>
|
|
144
|
-
|
|
145
|
-
</div>
|
|
146
|
-
|
|
147
|
-
</Page>
|
|
148
|
-
)
|
|
149
|
-
});
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Npm
|
|
6
|
-
|
|
7
|
-
// Core
|
|
8
|
-
import type ClientApplication from '@client/app';
|
|
9
|
-
|
|
10
|
-
/*----------------------------------
|
|
11
|
-
- TYPES
|
|
12
|
-
----------------------------------*/
|
|
13
|
-
|
|
14
|
-
declare global {
|
|
15
|
-
interface Window {
|
|
16
|
-
// Defined by loading gtag.js
|
|
17
|
-
gtag: (
|
|
18
|
-
name: string,
|
|
19
|
-
action: string,
|
|
20
|
-
params?: {
|
|
21
|
-
event_category?: string,
|
|
22
|
-
event_label?: string,
|
|
23
|
-
value?: string,
|
|
24
|
-
}
|
|
25
|
-
) => void,
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/*----------------------------------
|
|
30
|
-
- SERVICE
|
|
31
|
-
----------------------------------*/
|
|
32
|
-
export default class ClientMetrics {
|
|
33
|
-
|
|
34
|
-
public constructor( public app: ClientApplication ) {
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
public start() {
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// Tracking
|
|
43
|
-
public event(
|
|
44
|
-
action: string,
|
|
45
|
-
category?: string,
|
|
46
|
-
label?: string,
|
|
47
|
-
value?: string,
|
|
48
|
-
) {
|
|
49
|
-
if (!window.gtag) return console.warn("[tracker] Google Analytics wasn't imported in header > scripts.");
|
|
50
|
-
if (action === 'pageview')
|
|
51
|
-
window.gtag('send', action);
|
|
52
|
-
else
|
|
53
|
-
window.gtag('event', action, {
|
|
54
|
-
event_category: category,
|
|
55
|
-
event_label: label,
|
|
56
|
-
value
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../../node_modules/5htp-core/tsconfig.common.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"rootDir": "..",
|
|
5
|
-
"baseUrl": "..",
|
|
6
|
-
"paths": {
|
|
7
|
-
|
|
8
|
-
"@/server/models": ["./server/.generated/models"],
|
|
9
|
-
|
|
10
|
-
"@client/*": ["../node_modules/5htp-core/src/client/*"],
|
|
11
|
-
"@common/*": ["../node_modules/5htp-core/src/common/*"],
|
|
12
|
-
|
|
13
|
-
// Only used for typings (ex: ServerResponse)
|
|
14
|
-
// Removed before webpack compilation
|
|
15
|
-
"@server/*": ["../node_modules/5htp-core/src/server/*"],
|
|
16
|
-
"@/*": ["./*"],
|
|
17
|
-
|
|
18
|
-
// ATTENTION: Les références à preact doivent toujours pointer vers la même instance
|
|
19
|
-
"react": ["preact/compat"],
|
|
20
|
-
"react-dom/test-utils": ["preact/test-utils"],
|
|
21
|
-
"react-dom": ["preact/compat"], // Must be below test-utils
|
|
22
|
-
"react/jsx-runtime": ["preact/jsx-runtime"],
|
|
23
|
-
"preact/jsx-runtime": ["preact/jsx-runtime"]
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
"include": [
|
|
27
|
-
".",
|
|
28
|
-
"../../node_modules/5htp-core/src/types/global",
|
|
29
|
-
".generated/services.d.ts"
|
|
30
|
-
]
|
|
31
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export const domains = {
|
|
2
|
-
local: {
|
|
3
|
-
recruiters: 'http://localhost:3010',
|
|
4
|
-
landing: 'http://localhost:3011',
|
|
5
|
-
employers: 'http://localhost:3012',
|
|
6
|
-
candidates: 'http://localhost:3013',
|
|
7
|
-
csm: 'http://localhost:3014',
|
|
8
|
-
},
|
|
9
|
-
prod: {
|
|
10
|
-
recruiters: 'https://recruiters.becrosspath.com',
|
|
11
|
-
landing: 'https://becrosspath.com',
|
|
12
|
-
employers: 'https://employers.becrosspath.com',
|
|
13
|
-
candidates: 'https://candidates.becrosspath.com',
|
|
14
|
-
csm: 'https://csm.becrosspath.com',
|
|
15
|
-
}
|
|
16
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Core
|
|
6
|
-
import { Schema, Validators } from '@common/validation';
|
|
7
|
-
|
|
8
|
-
const field = new Validators();
|
|
9
|
-
|
|
10
|
-
/*----------------------------------
|
|
11
|
-
- SCHEMA
|
|
12
|
-
----------------------------------*/
|
|
13
|
-
export default new Schema({
|
|
14
|
-
|
|
15
|
-
firstName: field.string(),
|
|
16
|
-
|
|
17
|
-
lastName: field.string(),
|
|
18
|
-
|
|
19
|
-
companyName: field.string(),
|
|
20
|
-
|
|
21
|
-
email: field.email(),
|
|
22
|
-
|
|
23
|
-
phone: field.string(),
|
|
24
|
-
|
|
25
|
-
});
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Core
|
|
6
|
-
import { Schema, Validators } from '@common/validation';
|
|
7
|
-
|
|
8
|
-
// App
|
|
9
|
-
import { Currencies } from '@/common/libs/hub';
|
|
10
|
-
|
|
11
|
-
const field = new Validators();
|
|
12
|
-
|
|
13
|
-
/*----------------------------------
|
|
14
|
-
- SCHEMA
|
|
15
|
-
----------------------------------*/
|
|
16
|
-
export default new Schema({
|
|
17
|
-
|
|
18
|
-
sourceUrl: field.url({ opt: true }),
|
|
19
|
-
|
|
20
|
-
salaryMin: field.int({ min: 0 }),
|
|
21
|
-
salaryMax: field.int({ min: 0 }),
|
|
22
|
-
|
|
23
|
-
desiredBounty: field.int({ min: 0 }),
|
|
24
|
-
bountyCurrency: field.choice( Currencies ),
|
|
25
|
-
|
|
26
|
-
});
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Core
|
|
6
|
-
import { Schema, Validators } from '@common/validation';
|
|
7
|
-
|
|
8
|
-
const field = new Validators();
|
|
9
|
-
|
|
10
|
-
/*----------------------------------
|
|
11
|
-
- SCHEMA
|
|
12
|
-
----------------------------------*/
|
|
13
|
-
export default new Schema({
|
|
14
|
-
|
|
15
|
-
firstName: field.string(),
|
|
16
|
-
|
|
17
|
-
lastName: field.string(),
|
|
18
|
-
|
|
19
|
-
companyName: field.string(),
|
|
20
|
-
|
|
21
|
-
email: field.email(),
|
|
22
|
-
|
|
23
|
-
linkedInUrl: field.url(),
|
|
24
|
-
|
|
25
|
-
phone: field.string(),
|
|
26
|
-
|
|
27
|
-
calendly: field.string({ opt: true }),
|
|
28
|
-
|
|
29
|
-
jobIds: field.array( field.string(), { opt: true })
|
|
30
|
-
|
|
31
|
-
});
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Core
|
|
6
|
-
import { Schema, Validators } from '@common/validation';
|
|
7
|
-
|
|
8
|
-
// TODO: impoer each validator independently via spread
|
|
9
|
-
const field = new Validators();
|
|
10
|
-
|
|
11
|
-
/*----------------------------------
|
|
12
|
-
- CONST
|
|
13
|
-
----------------------------------*/
|
|
14
|
-
|
|
15
|
-
export const feedbackTypes = ['Issue', 'Suggestion'].map( v => ({
|
|
16
|
-
label: v,
|
|
17
|
-
value: v
|
|
18
|
-
}))
|
|
19
|
-
|
|
20
|
-
/*----------------------------------
|
|
21
|
-
- SCHEMA
|
|
22
|
-
----------------------------------*/
|
|
23
|
-
export default new Schema({
|
|
24
|
-
|
|
25
|
-
type: field.choice(feedbackTypes),
|
|
26
|
-
|
|
27
|
-
mission: field.choice(undefined, { opt: true }),
|
|
28
|
-
|
|
29
|
-
comment: field.string()
|
|
30
|
-
|
|
31
|
-
});
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Core
|
|
6
|
-
import { Schema, Validators } from '@common/validation';
|
|
7
|
-
|
|
8
|
-
// App
|
|
9
|
-
import { rejectionReasons } from '@/common/libs/headhunter/mission';
|
|
10
|
-
|
|
11
|
-
// TODO: impoer each validator independently via spread
|
|
12
|
-
const field = new Validators();
|
|
13
|
-
|
|
14
|
-
/*----------------------------------
|
|
15
|
-
- SCHEMA
|
|
16
|
-
----------------------------------*/
|
|
17
|
-
export default new Schema({
|
|
18
|
-
|
|
19
|
-
missionId: field.string(),
|
|
20
|
-
|
|
21
|
-
// TODO: Generate array list of possible values in @server/database
|
|
22
|
-
reason: field.choice( rejectionReasons ),
|
|
23
|
-
|
|
24
|
-
explanations: field.string({ opt: true }),
|
|
25
|
-
|
|
26
|
-
});
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Core
|
|
6
|
-
import { Schema, Validators } from '@common/validation';
|
|
7
|
-
// TODO: impoer each validator independently via spread
|
|
8
|
-
const field = new Validators();
|
|
9
|
-
|
|
10
|
-
// App
|
|
11
|
-
import { Currencies, MobilityModes } from '@/common/libs/hub';
|
|
12
|
-
|
|
13
|
-
/*----------------------------------
|
|
14
|
-
- SCHEMA
|
|
15
|
-
----------------------------------*/
|
|
16
|
-
// TODO: Generate array list of possible values in @server/database
|
|
17
|
-
export default new Schema({
|
|
18
|
-
|
|
19
|
-
location: field.choice(),
|
|
20
|
-
locationCity: field.string({ opt: true }),
|
|
21
|
-
|
|
22
|
-
mobility: field.choice(MobilityModes),
|
|
23
|
-
mobilityLocations: field.array( field.choice(), { opt: true }),
|
|
24
|
-
hasVisa: field.array( field.choice(), { opt: true }),
|
|
25
|
-
|
|
26
|
-
availability: field.string(),
|
|
27
|
-
|
|
28
|
-
minSalaryExpect: field.int({ min: 0 }),
|
|
29
|
-
//maxSalaryExpect: field.int({ opt: true, min: 0 }),
|
|
30
|
-
salaryCurrency: field.choice(Currencies, { opt: true }),
|
|
31
|
-
});
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Core
|
|
6
|
-
import { Schema, Validators } from '@common/validation';
|
|
7
|
-
// TODO: impoer each validator independently via spread
|
|
8
|
-
const field = new Validators();
|
|
9
|
-
|
|
10
|
-
/*----------------------------------
|
|
11
|
-
- SCHEMA
|
|
12
|
-
----------------------------------*/
|
|
13
|
-
// TODO: Generate array list of possible values in @server/database
|
|
14
|
-
export default new Schema({
|
|
15
|
-
/*schools: field.string({ opt: true }),
|
|
16
|
-
degreeSubject: field.string({ opt: true }),
|
|
17
|
-
graduationLevel: field.string({ opt: true }),
|
|
18
|
-
graduationYear: field.int({ opt: true }),*/
|
|
19
|
-
});
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Core
|
|
6
|
-
import { Schema, Validators } from '@common/validation';
|
|
7
|
-
// TODO: impoer each validator independently via spread
|
|
8
|
-
const field = new Validators();
|
|
9
|
-
|
|
10
|
-
// App
|
|
11
|
-
import { Genders } from '@/common/libs/hub';
|
|
12
|
-
|
|
13
|
-
/*----------------------------------
|
|
14
|
-
- SCHEMA
|
|
15
|
-
----------------------------------*/
|
|
16
|
-
// TODO: Generate array list of possible values in @server/database
|
|
17
|
-
export default new Schema({
|
|
18
|
-
|
|
19
|
-
firstName: field.string(),
|
|
20
|
-
lastName: field.string(),
|
|
21
|
-
gender: field.choice(Genders, { opt: true }),
|
|
22
|
-
|
|
23
|
-
email: field.email(),
|
|
24
|
-
phone: field.string({ opt: true }),
|
|
25
|
-
linkedInUrl: field.url({
|
|
26
|
-
opt: true,
|
|
27
|
-
normalize: {
|
|
28
|
-
removeQueryParameters: true
|
|
29
|
-
}
|
|
30
|
-
}),
|
|
31
|
-
});
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Core
|
|
6
|
-
import { Schema, Validators } from '@common/validation';
|
|
7
|
-
|
|
8
|
-
// TODO: impoer each validator independently via spread
|
|
9
|
-
const field = new Validators();
|
|
10
|
-
|
|
11
|
-
/*----------------------------------
|
|
12
|
-
- SCHEMA
|
|
13
|
-
----------------------------------*/
|
|
14
|
-
// TODO: Generate array list of possible values in @server/database
|
|
15
|
-
export default new Schema({
|
|
16
|
-
|
|
17
|
-
customQnA: field.string({ opt: true }),
|
|
18
|
-
comments: field.string(),
|
|
19
|
-
});
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Core
|
|
6
|
-
import { Schema, Validators } from '@common/validation';
|
|
7
|
-
|
|
8
|
-
// TODO: impoer each validator independently via spread
|
|
9
|
-
const field = new Validators();
|
|
10
|
-
|
|
11
|
-
/*----------------------------------
|
|
12
|
-
- SCHEMA
|
|
13
|
-
----------------------------------*/
|
|
14
|
-
// TODO: Generate array list of possible values in @server/database
|
|
15
|
-
export default new Schema({
|
|
16
|
-
//softSkills: field.string({ opt: true }),
|
|
17
|
-
hardSkills: field.array( field.choice() ),
|
|
18
|
-
languages: field.array( field.choice(), {
|
|
19
|
-
min: 1
|
|
20
|
-
}),
|
|
21
|
-
});
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Core
|
|
6
|
-
import { Schema, Validators } from '@common/validation';
|
|
7
|
-
|
|
8
|
-
// TODO: impoer each validator independently via spread
|
|
9
|
-
const field = new Validators();
|
|
10
|
-
|
|
11
|
-
/*----------------------------------
|
|
12
|
-
- SCHEMA
|
|
13
|
-
----------------------------------*/
|
|
14
|
-
export default new Schema({
|
|
15
|
-
|
|
16
|
-
missionId: field.string(),
|
|
17
|
-
|
|
18
|
-
// TODO: Generate array list of possible values in @server/database
|
|
19
|
-
reason: field.string(/*{ in: }*/),
|
|
20
|
-
|
|
21
|
-
explanations: field.string({ opt: true }),
|
|
22
|
-
|
|
23
|
-
});
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Core
|
|
6
|
-
import { Schema, Validators } from '@common/validation';
|
|
7
|
-
|
|
8
|
-
// TODO: impoer each validator independently via spread
|
|
9
|
-
const field = new Validators();
|
|
10
|
-
|
|
11
|
-
/*----------------------------------
|
|
12
|
-
- SCHEMA
|
|
13
|
-
----------------------------------*/
|
|
14
|
-
export default new Schema({
|
|
15
|
-
|
|
16
|
-
jobType: field.choice([{
|
|
17
|
-
label: 'Full Time',
|
|
18
|
-
value: 'fullTime'
|
|
19
|
-
},{
|
|
20
|
-
label: 'Freelance',
|
|
21
|
-
value: 'freelance'
|
|
22
|
-
}], { opt: true }),
|
|
23
|
-
|
|
24
|
-
status: field.choice([{
|
|
25
|
-
label: 'Active',
|
|
26
|
-
value: 'Active'
|
|
27
|
-
},{
|
|
28
|
-
label: 'Paused',
|
|
29
|
-
value: 'Paused'
|
|
30
|
-
},{
|
|
31
|
-
label: 'Closed',
|
|
32
|
-
value: 'Closed'
|
|
33
|
-
}], { opt: true, multiple: true }),
|
|
34
|
-
|
|
35
|
-
sectors: field.choice(undefined, {
|
|
36
|
-
multiple: true,
|
|
37
|
-
opt: true
|
|
38
|
-
}),
|
|
39
|
-
|
|
40
|
-
positions: field.choice(undefined, {
|
|
41
|
-
multiple: true,
|
|
42
|
-
opt: true
|
|
43
|
-
}),
|
|
44
|
-
|
|
45
|
-
skills: field.choice(undefined, {
|
|
46
|
-
multiple: true,
|
|
47
|
-
opt: true
|
|
48
|
-
}),
|
|
49
|
-
|
|
50
|
-
languages: field.choice(undefined, {
|
|
51
|
-
multiple: true,
|
|
52
|
-
opt: true
|
|
53
|
-
}),
|
|
54
|
-
|
|
55
|
-
locations: field.choice(undefined, {
|
|
56
|
-
multiple: true,
|
|
57
|
-
opt: true
|
|
58
|
-
}),
|
|
59
|
-
|
|
60
|
-
companySizes: field.choice(undefined, {
|
|
61
|
-
multiple: true,
|
|
62
|
-
opt: true
|
|
63
|
-
}),
|
|
64
|
-
|
|
65
|
-
seniority: field.choice(undefined, {
|
|
66
|
-
multiple: true,
|
|
67
|
-
opt: true
|
|
68
|
-
}),
|
|
69
|
-
|
|
70
|
-
sort: field.choice([{
|
|
71
|
-
label: 'Date Posted',
|
|
72
|
-
value: 'Date Posted'
|
|
73
|
-
},{
|
|
74
|
-
label: 'Relevency',
|
|
75
|
-
value: 'Relevency'
|
|
76
|
-
}], { opt: true }),
|
|
77
|
-
|
|
78
|
-
});
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Core
|
|
6
|
-
import { Schema, Validators } from '@common/validation';
|
|
7
|
-
|
|
8
|
-
// TODO: impoer each validator independently via spread
|
|
9
|
-
const field = new Validators();
|
|
10
|
-
|
|
11
|
-
/*----------------------------------
|
|
12
|
-
- SCHEMA
|
|
13
|
-
----------------------------------*/
|
|
14
|
-
export default new Schema({
|
|
15
|
-
|
|
16
|
-
firstName: field.string(),
|
|
17
|
-
|
|
18
|
-
lastName: field.string(),
|
|
19
|
-
|
|
20
|
-
email: field.email(),
|
|
21
|
-
|
|
22
|
-
linkedInUrl: field.url(),
|
|
23
|
-
|
|
24
|
-
phone: field.string(),
|
|
25
|
-
|
|
26
|
-
password: field.string({ min: 10 }),
|
|
27
|
-
|
|
28
|
-
// Tracking
|
|
29
|
-
|
|
30
|
-
referrerId: field.string({ opt: true }),
|
|
31
|
-
utm_medium: field.string({ opt: true }),
|
|
32
|
-
utm_source: field.string({ opt: true }),
|
|
33
|
-
|
|
34
|
-
});
|