Skip to content

Commit e29792a

Browse files
committed
добавлен скрипт reg
1 parent 813692a commit e29792a

File tree

4 files changed

+432
-8
lines changed

4 files changed

+432
-8
lines changed

env.paths.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"REG_URL": "https://webdev-api.loftschool.com/register"
3+
}

package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
"main": "index.js",
66
"scripts": {
77
"dev": "webpack-dev-server --mode=development --hot",
8-
"build": "rm -rf dist && webpack --mode=production --progress"
8+
"build": "rm -rf dist && webpack --mode=production --progress",
9+
"reg": "node reg-util.js"
910
},
1011
"keywords": [],
1112
"author": "",
@@ -48,7 +49,10 @@
4849
],
4950
"dependencies": {
5051
"normalize.css": "^8.0.1",
52+
"promptly": "^3.0.3",
5153
"pug": "^2.0.3",
54+
"request": "^2.88.0",
55+
"signale": "^1.4.0",
5256
"vue": "^2.6.7",
5357
"vue-router": "^3.0.2"
5458
}

reg-util.js

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
const request = require("request");
2+
const signale = require("signale");
3+
const promptly = require("promptly");
4+
const config = require("./env.paths.json");
5+
6+
const generateUsername = name => {
7+
const date = new Date();
8+
return `${name}-0${date.getMonth()}${date.getFullYear()}`;
9+
};
10+
11+
const registerUser = (name, password) => {
12+
signale.await("Отправляем запрос");
13+
request.post(
14+
{
15+
url: config.REG_URL,
16+
form: {
17+
name,
18+
password
19+
}
20+
},
21+
(err, response, body) => {
22+
if (err) signale.fatal(err);
23+
24+
console.log(response.statusCode);
25+
26+
27+
switch (response.statusCode) {
28+
case 302:
29+
const newUserName = generateUsername(name);
30+
signale.error(
31+
`Такой пользователь уже существует. Попробуйте имя: ${newUserName}`
32+
);
33+
break;
34+
case 200:
35+
signale.success(
36+
`Регистрация прошла успешно для пользователя: ${name}`
37+
);
38+
break;
39+
}
40+
}
41+
);
42+
};
43+
44+
const validator = value => {
45+
if (value.length <= 3) {
46+
signale.error("В поле должно быть больше 3-ёх символов");
47+
throw new Error();
48+
}
49+
50+
return value;
51+
};
52+
53+
async function askForPasswords() {
54+
const password = await promptly.password("Введите пароль: ", {
55+
replace: "*",
56+
validator
57+
});
58+
const repeatPassword = await promptly.password("Повторите пароль: ", {
59+
replace: "*",
60+
validator
61+
});
62+
63+
if (password === repeatPassword) {
64+
return password;
65+
} else {
66+
signale.warn("Пароли не совпадают. Попробуйте еще раз!");
67+
return askForPasswords();
68+
}
69+
}
70+
71+
async function main() {
72+
const name = await promptly.prompt("Введите имя пользователя: ", {
73+
validator
74+
});
75+
const password = await askForPasswords();
76+
77+
registerUser(name.trim(), password.trim());
78+
}
79+
80+
main();

0 commit comments

Comments
 (0)