Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Hexlet#276]. Fix cors error. Update js script, update tests, add override handleMethodArgumentNotValid method #279

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

kitdim
Copy link
Contributor

@kitdim kitdim commented Jun 23, 2024

Не прошёл один интеграционный тест. Тест недавно добавили. В предыдущем мердже он тоже не прошёл.
Демо

@kitdim
Copy link
Contributor Author

kitdim commented Jun 23, 2024

Перед мерджем нужно будет поменять url для отправки запроса на api, ща урл с рендера стоит 'https://hexlet-correction-u17z.onrender.com/api/workspaces'

@kitdim
Copy link
Contributor Author

kitdim commented Jun 23, 2024

image
js скрипт вытаскиваем так <script src="https://cdn.jsdelivr.net/gh/kitdim/hexlet-correction@fix-CORS-error/src/widget/index.js"></script>
Результат
image

@Malcom1986
Copy link
Collaborator

Привет! Тест посмотрю, почему падает

@bazilval
Copy link
Collaborator

bazilval commented Jun 26, 2024

@Malcom1986 там тест падает из-за баги в одном из предыдущих пулл реквестов
Вот тут (#278) эту багу исправили, плюс попутно некоторые связанные вещи. Надо ревьюить, я тоже там погляжу

@bazilval
Copy link
Collaborator

bazilval commented Jun 26, 2024

@kitdim привет!
Может тогда, раз мы взялись за валидацию в виджете, будем выводить ошибки валидации не с помощью alert, а под соответствующими полями будем выводить сообщения об ошибке?

По сути к нам возвращается JSON с указанием где ошибка и в чём она заключается, надо пройти циклом и в зависимости от ключа, вписать в нужный div для ошибки сам текст предупреждения.

@kitdim
Copy link
Contributor Author

kitdim commented Jun 26, 2024

@bazilval салют)
Оке, на днях сделаю.

@bazilval
Copy link
Collaborator

@kitdim используй тогда для этих div-ов класс бутстрапа "invalid-feedback", чтобы было однообразно с нашим основным сервисом и аккуратно смотрелось

@@ -275,7 +299,7 @@ const handleTypoReporter = (options) => {
const initialState = {
modalShown: false,
options: {
workSpaceUrl: 'https://hexlet-correction.herokuapp.com/api/workspaces',
workSpaceUrl: 'https://hexlet-correction-u17z.onrender.com/api/workspaces',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут вы ссылку поменяли, давайте вернем назад :)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я так понял это для нас, чтобы демо работало :)

@fey
Copy link
Collaborator

fey commented Jun 27, 2024

Да, насчет алерта согласен. Лучше на форме это выводить.

private final List<String> errors;

public ApiError(HttpStatus status, String message, List<String> errors) {
super();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А у кого мы в этом случае вызываем super(), если класс ни от кого не наследуется? У Object? Если так, то нет нужды в явном вызове super()

@@ -267,6 +278,19 @@ const isSelectionLeftToRight = (selection) => {
return range.collapsed;
}

const isSuccessPost = (response) => {
return response.status === 201;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Возможно проверку в один оператор, которая используется один раз, можно оставить в изначальном виде и не выносить в отдельную функцию

@kitdim
Copy link
Contributor Author

kitdim commented Jun 29, 2024

@kitdim используй тогда для этих div-ов класс бутстрапа "invalid-feedback", чтобы было однообразно с нашим основным сервисом и аккуратно смотрелось

@fey, на самом деле усложняет всё. потому-что бутстрап может быть не на каждом сайте. то что у нас в примере, идеальный случай. мб, лучше так отрисовывать?

@kitdim
Copy link
Contributor Author

kitdim commented Jun 29, 2024

Я всё подготовил (демо теперь из-за смены урла не работает, можно выгрузить ветку и так посмотреть), но давайте на будующее этот момент тоже поправим.
#279 (comment)

@bazilval
Copy link
Collaborator

@kitdim используй тогда для этих div-ов класс бутстрапа "invalid-feedback", чтобы было однообразно с нашим основным сервисом и аккуратно смотрелось

@fey, на самом деле усложняет всё. потому-что бутстрап может быть не на каждом сайте. то что у нас в примере, идеальный случай. мб, лучше так отрисовывать?

@kitdim насчёт того, что у нас бутстрап может быть не на каждом сайте это верная мысль!
Может тогда добавим в описание стилей в начале, описание класса для ошибки? Либо по айдишнику (но тогда дублироваться будет описание для двух айдишиников)
image
Можно просто списать с бутстраповского значения

@kitdim
Copy link
Contributor Author

kitdim commented Jul 2, 2024

Сделал, можем сливать


targetElement.insertAdjacentElement('afterend', divElement);

const style = document.createElement('style');
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

И всё-таки я бы прям добавил этот стиль в уже существующее в самом начале файла описание стилей

Чтобы просто всё оформление было в одном месте, для удобства поддержания

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я сделал так, потому что мы не можем гарантировать что конечный пользователь ввёдет что-то неправильно (длинный эмаёл или описание). А так если хочешь, то можешь сам подправить.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants