init here
This commit is contained in:
84
исх/властелины/пользователи/пользователи.tri
Normal file
84
исх/властелины/пользователи/пользователи.tri
Normal file
@@ -0,0 +1,84 @@
|
||||
модуль пользователи
|
||||
|
||||
импорт "стд::вывод"
|
||||
импорт "исх/строка"
|
||||
импорт "исх/спринтф"
|
||||
импорт "исх/массивы"
|
||||
импорт "исх/сеть/хттп"
|
||||
импорт "исх/форматы/джесон"
|
||||
импорт "исх/сеть/хттп/маршрутизатор"
|
||||
импорт "исх/картотека"
|
||||
импорт "исх/картотека/репозитории"
|
||||
импорт "исх/бюрократия"
|
||||
|
||||
фн войти*(путь: Строка, параметры: массивы.Строки, обращение: маршрутизатор.Обращение): хттп.ХттпОтвет {
|
||||
пусть картотека = картотека.зайти()
|
||||
пусть оплошность := ""
|
||||
пусть данные = джесон.парсить(обращение.туловище, оплошность)
|
||||
|
||||
если оплошность # "" {
|
||||
вернуть хттп.ответ_500()
|
||||
}
|
||||
|
||||
пусть имя пользователя := данные.получить("имя пользователя").строка()
|
||||
пусть пароль := данные.получить("пароль").строка()
|
||||
|
||||
пусть пользователь = репозитории.авторизовать пользователя(имя пользователя^, пароль^, оплошность)
|
||||
|
||||
если оплошность # "" {
|
||||
вывод.ф("$стр\n", оплошность)
|
||||
вернуть хттп.ответ_500()
|
||||
}
|
||||
|
||||
если пользователь = пусто {
|
||||
вернуть хттп.ответ_401()
|
||||
}
|
||||
|
||||
вернуть хттп.ХттпОтвет{
|
||||
туловище: "Рады видеть вас снова :3"
|
||||
}
|
||||
}
|
||||
|
||||
фн сменить пароль*(путь: Строка, параметры: массивы.Строки, обращение: маршрутизатор.Обращение): хттп.ХттпОтвет {
|
||||
пусть оплошность := ""
|
||||
пусть картотека = картотека.зайти()
|
||||
пусть пользователь = репозитории.авторизовать по паспорту(бюрократия.получить данные паспорта(обращение), оплошность)
|
||||
|
||||
если оплошность # "" {
|
||||
вернуть хттп.ответ_500()
|
||||
}
|
||||
|
||||
если пользователь = пусто {
|
||||
вернуть хттп.ответ_401()
|
||||
}
|
||||
|
||||
пусть данные = джесон.парсить(обращение.туловище, оплошность)
|
||||
|
||||
если оплошность # "" {
|
||||
вернуть хттп.ответ_400()
|
||||
}
|
||||
|
||||
пусть новый пароль := данные.получить("новый пароль").строка()
|
||||
|
||||
если новый пароль = пусто | новый пароль^ = "" {
|
||||
вернуть хттп.ответ_422()
|
||||
}
|
||||
|
||||
картотека.запросить безопасно(`
|
||||
UPDATE users SET password = ? WHERE id = ?
|
||||
`, оплошность, новый пароль^, пользователь^.идентификатор
|
||||
)
|
||||
|
||||
если оплошность # "" {
|
||||
вернуть хттп.ответ_500()
|
||||
}
|
||||
|
||||
вернуть хттп.ответ_204()
|
||||
}
|
||||
|
||||
фн добавить маршруты*(маршрутизатор: маршрутизатор.Маршрутизатор): маршрутизатор.Маршрутизатор {
|
||||
маршрутизатор.добавить маршрут("/api/users/login", массивы.Строки["POST"], войти)
|
||||
маршрутизатор.добавить маршрут("/api/users/password", массивы.Строки["PUT"], сменить пароль)
|
||||
|
||||
вернуть маршрутизатор
|
||||
}
|
||||
Reference in New Issue
Block a user