Лирическое отступлениеОколо месяца пилю интерактивную и динамическую форму на конструкторе подписных страниц с jQuery и обращением к PHP-скрипту на внешнем хосте. Сейчас список хотелок и бизнес-задач разрастается, я начинаю путаться в своём коде и иногда не имею понятия, как всё связать до кучи. Задумался о том, чтобы превратить изначально простую форму заказа на конструкторе в мини-SPA для обработки бизнес-логики.
Какие вводные:
- сервис, на котором ведётся расписание сотрудников и хранится история сеансов
- СРМ, которая принимает заявки, платежи и умеет отправлять get и post запросы по заданному url
Что мне нужно:
1. сделать страницу заказа, на которой поле почты пользователя, выбор сотрудника из списка, выбор даты и времени сеанса
2. после ввода почты я отправляю запрос по API в сервис, где хранится история сеансов и получаю ответ с инфой по данной почте (сколько сеансов, с кем работал пользователь, были ли сеансы в последние 3 месяца)
2.1. на основании ответа я делаю автоматические действия на странице (выбираю тип услуги (1 из 2), выбираю сотрудника)
3. кликая на блок с выбором сотрудников, я подгружаю список актуальных сотрудников из сервиса по АПИ (возвращается json-массив с ФИО, ссылкой на фото, специализацией, текстом-описанием) и вывожу эти данные в карточках. В каждой карточке есть кнопка-инфо, которая показывает расширенный текст-описание сотрудника.
4. кликая на блок с выбором даты, я подгружаю список доступных дат и промежутков времени, доступных для записи (например, 16 февраля сотрудник №1 может принять человека в 10:00 и 13:00, длительность сеанса 60 минут) и вывести кнопки, в которых будет написано 10:00 и 13:00.
Если свободных сеансов нет, вывести текст с информацией. По клику на кнопку со временем это время "запоминается" и после отправки формы по АПИ создаётся сеанс в сервисе с расписанием.
5. зная вернувшийся ответ от сервиса после ввода почты, проверять действия пользователя на странице и выводить предупреждения (например, если за последние 3 месяца не было сеансов (вернулось false), то при попытке выбрать услугу №2 вывести предупреждение).
Для обработки этих действий уже лучше писать SPA или я просто хочу накидать себе дополнительных задач, а всё решается одним js-скриптом?
6. (доп. вопрос). моя СРМ умеет отправлять post и get запросы по указанному url. Но чтобы обратиться к АПИ сервиса, нужно указывать токены в header. Управлять header в СРМ я не могу.
Стоит ли (и можно ли технически) хранить логику запросов к АПИ внутри SPA и обращаться к SPA из СРМ, чтобы сделать какие-то действия?