This repository has been archived by the owner on Jul 30, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 10
/
example.ts
executable file
·81 lines (69 loc) · 2.86 KB
/
example.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
79
80
81
// import hcs from "hcs.js"
import * as hcs from "./src"
// @ts-ignore
import Readline from 'readline'
import {CovidQuickTestResult} from "./src";
const readline = Readline.createInterface({
input: process.stdin,
output: process.stdout
})
const it = readline[Symbol.asyncIterator]()
const example = async () => {
console.log('학교 이름을 입력해주세요.')
const schoolName = (await it.next()).value
const schools = await hcs.searchSchool(schoolName)
if (schools.length === 0) {
console.log('검색된 학교가 없습니다.')
process.exit(0)
}
const school = schools[0]
console.log('이름을 입력해주세요.')
const name = (await it.next()).value
console.log('생년월일 6자리를 입력해주세요.')
const birthday = (await it.next()).value
let login
while (true) {
console.log('비밀번호 4자리를 입력해주세요.')
const password = (await it.next()).value
const loginResult = await hcs.login(school.endpoint, school.schoolCode, name, birthday, school.searchKey, password)
if (loginResult.success == false) {
if (loginResult.message) {
console.log(loginResult.message)
process.exit(0)
}
if (loginResult.remainingMinutes) {
console.log(`5회 이상 실패하여 ${loginResult.remainingMinutes}분 후에 재시도가 가능합니다.`)
continue
}
console.log('잘못된 비밀번호입니다. 5회 이상 실패시 5분 후에 재시도가 가능합니다.')
console.log(`현재 ${loginResult.failCount}번 실패하셨습니다.`)
} else {
login = loginResult
break
}
}
if (login.agreementRequired) {
console.log('개인정보 처리 방침 (https://hcs.eduro.go.kr/agreement) 에 동의하십니까? 동의하실 경우, 엔터를 눌러주세요.')
await it.next()
await hcs.updateAgreement(school.endpoint, login.token)
}
const survey = {
/**
* 1. 학생 본인이 코로나19 감염에 의심되는 아래의 임상증상*이 있나요?
* (주요 임상증상) 발열(37.5℃), 기침, 호흡곤란, 오한, 근육통, 두통, 인후통, 후각·미각소실
*/
Q1: false,
/**
* 2. 학생은 오늘(어제 저녁 포함) 신속항원검사(자가진단)를 실시했나요?
*/
Q2: CovidQuickTestResult.NONE,
/**
* 3.학생 본인 또는 동거인이 PCR 검사를 받고 그 결과를 기다리고 있나요?
*/
Q3: false
}
const result = await hcs.registerSurvey(school.endpoint, login.token, survey)
console.log(`${result.registeredAt} ${login.name}님 자가진단을 완료하셨습니다.`)
process.exit(0)
}
example().then()