This repository has been archived by the owner on Aug 17, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
completeScreening.ts
78 lines (75 loc) · 2.35 KB
/
completeScreening.ts
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
/**
* Copyright (C) 2021 PythonCoderAS
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import axios from "axios";
import objectToWrapper from "@healthscreening/object-to-wrapper"
import { screeningTypeType } from "@healthscreening/screening-types";
export interface SendRequestParams {
firstName: string;
lastName: string;
email: string;
isVaxxed: boolean;
type: screeningTypeType;
}
export interface SubmitParams {
Type: screeningTypeType;
IsOther: boolean;
IsStudent: 0 | 1;
FirstName: string;
LastName: string;
Email: string;
State: string;
Location: string;
Floor: string | null;
PrequestionAnswer: 0 | 1;
Answer1: 0 | 1;
Answer2: 0 | 1;
Answer3?: 0 | 1;
Answer4?: 0 | 1;
}
export default async function completeScreening(
options: SendRequestParams
): Promise<boolean> {
// We assume the browser has been started already.
const obj: SubmitParams = {
Type: options.type || "G",
IsOther: false,
IsStudent: 1,
FirstName: options.firstName,
LastName: options.lastName,
Email: options.email,
State: "NY",
Location: "X445",
Floor: null,
PrequestionAnswer: 0,
Answer1: 0,
Answer2: 0,
Answer3: 0,
};
// We do not use the vaccinated option as of right now
const response = await axios.post(
"https://healthscreening.schools.nyc/home/submit",
new URLSearchParams(objectToWrapper(obj)).toString(),
{
headers: {
accept: "*/*",
"accept-language": "en-US,en;q=0.9,bn;q=0.8",
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
},
}
);
return response.status / 100 < 4;
}