-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.ts
93 lines (72 loc) · 2.37 KB
/
index.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
82
83
84
85
86
87
88
89
90
91
92
93
import { EduroSurveyApi, ParticipantPreview, SurveyUser, School } from "./src/eduroapi";
import * as jsonreader from './src/util/jsonreader';
interface Credentials {
"birthday": string,
"studentName": string,
"schoolName": string,
"schoolType": string,
"province": string,
"password": string
}
function readCredentials() : Credentials[] {
let json = jsonreader.readSync('credentials.json');
return Array.isArray(json) ? json : [json];
}
async function dosurvey(credentials: Credentials) {
console.log('로그인 정보: {\n' +
` 생일: ${credentials.birthday},\n` +
` 이름: ${credentials.studentName},\n\n` +
` 행정 구역: ${credentials.province},\n` +
` 학교급: ${credentials.schoolType},\n` +
` 학교: ${credentials.schoolName},\n` +
'}\n');
process.stdout.write('학교 정보 구하는 중... ');
let schools : School[];
try {
schools = (await EduroSurveyApi.searchSchool(credentials.province, credentials.schoolType, credentials.schoolName)).schulList;
if(schools.length == 0) throw '학교 검색결과가 없습니다.';
} catch(e) {
console.log(`❌,\n${e}`);
return;
}
console.log('✔️')
process.stdout.write('로그인 중... ');
let user : SurveyUser;
try {
user = await EduroSurveyApi.findUser({
birthday: credentials.birthday,
loginType: 'school',
name: credentials.studentName,
orgCode: schools[0].orgCode,
stdntPNo: null
});
await user.validatePassword(credentials.password);
} catch(e) {
console.log('❌');
return;
}
console.log('✔️')
process.stdout.write('참여자 정보 구하는 중... ');
let participant : ParticipantPreview;
try {
participant = (await user.getParticipantPreviews())[0];
} catch(e) {
console.log('❌');
return;
}
console.log('✔️')
process.stdout.write(`자가진단하는 중... `);
try {
let pinfo = await participant.getParticipantInfo();
await pinfo.doSurvey();
} catch(e) {
console.log('❌');
return;
}
console.log('✔️')
}
(async function a() {
for(let cre of readCredentials()) {
await dosurvey(cre);
}
})().then(console.log);