init here

This commit is contained in:
2025-11-26 21:32:41 +03:00
commit 33c97acade
91 changed files with 9155 additions and 0 deletions

View 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"], сменить пароль)
вернуть маршрутизатор
}