diff --git a/backend/api/account/client/views.py b/backend/api/account/client/views.py index 613a1ec..340a3ef 100644 --- a/backend/api/account/client/views.py +++ b/backend/api/account/client/views.py @@ -36,7 +36,7 @@ class UserDataView(ViewSet): status=status.HTTP_404_NOT_FOUND ) -class AccountActions(ViewSet): +class AccountActionsView(ViewSet): permission_classes = [IsAuthenticated] @action(detail=False, methods=['patch']) diff --git a/backend/api/urls.py b/backend/api/urls.py index 5fbf5eb..21c926f 100644 --- a/backend/api/urls.py +++ b/backend/api/urls.py @@ -8,7 +8,7 @@ LoginViewSet, LogoutView, RefreshTokenView) -from api.account.client.views import UserDataView +from api.account.client.views import UserDataView, AccountActionsView urlpatterns = [ path("v1/faq/", FAQView.as_view(), name='faqMain'), @@ -21,4 +21,6 @@ urlpatterns = [ path("v1/logout", LogoutView.as_view(), name="logout"), path ("v1/user/", UserDataView.as_view({'get': 'user_data'}), name="user"), + + path("v1/account/change_main_data/", AccountActionsView.as_view({'patch':'change_data_main_tab'}), name='change_data_main_tab') ] \ No newline at end of file diff --git a/frontend/app/(urls)/account/page.tsx b/frontend/app/(urls)/account/page.tsx index 8dc3f45..00a82e0 100644 --- a/frontend/app/(urls)/account/page.tsx +++ b/frontend/app/(urls)/account/page.tsx @@ -14,10 +14,12 @@ const validationRules = { lastName: { required: false }, phone_number: { required: true }, email: { required: true }, + country: { required: false }, + city: { required: false }, } const AccountPage = () => { - const { user } = useUserStore() + const { user, setUser } = useUserStore() const { values, handleChange, handleSubmit } = useForm( { @@ -31,10 +33,30 @@ const AccountPage = () => { validationRules, async (values) => { try { - // await updateMainTab(values) + const response = await fetch('/api/account/main', { + method: 'PATCH', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(values), + }) + + if (!response.ok) { + const error = await response.json() + throw new Error(error.error || 'Ошибка при обновлении данных') + } + + const result = await response.json() + setUser(result.user) showToast({ type: 'success', message: 'Данные успешно обновлены!' }) - } catch { - showToast({ type: 'error', message: 'Ой, что то пошло не так..' }) + } catch (error) { + showToast({ + type: 'error', + message: + error instanceof Error + ? error.message + : 'Ой, что то пошло не так..', + }) } } ) diff --git a/frontend/app/(urls)/publichnaya-oferta/page.tsx b/frontend/app/(urls)/publichnaya-oferta/page.tsx new file mode 100644 index 0000000..efb6c84 --- /dev/null +++ b/frontend/app/(urls)/publichnaya-oferta/page.tsx @@ -0,0 +1,324 @@ +import React from 'react' + +const PublicOffer = () => { + return ( +
+ 1.1. Настоящий Публичный договор (далее – Оферта, договор) + представляет собой официальное предложение Интернет-сервиса + tripwb.com (далее — Компания) на оказание Информационных услуг + дееспособным физическим лицам (далее – Пользователь) по попутной + доставке посылок, либо совместной автомобильной поездке, через + вебсайт tripwb.com регулирует порядок использования Сайта и + взаимоотношения, возникающие при использовании Сайта и Сервисов + Пользователями. Компания не гарантирует доступность Сайта и Сервисов + круглосуточно. Компания имеет право в любой момент отказать любому + Пользователю, в использовании Сервисов при нарушении договора. +
++ 1.2. Принятие (акцепт) данной Оферты означает полное и + безоговорочное принятие Пользователем всех условий без каких-либо + исключений и/или ограничений и приравнивается в соответствии со + статьей 395 Гражданского Кодекса Республики Казахстан настоящее + Пользовательское соглашение признается офертой. Соглашение, + заключаемое в форме оферты, предусмотрено Гражданским Кодексом + Республики Казахстан, не требует двустороннего подписания и + действительно в электронном виде. +
++ 1.3. Данная Оферта считается заключенной (акцептированной) с момента + принятия Пользователем условий Сервиса путем заполнения учетной + записи на Сайте Компании. +
++ 1.4. Компания и Пользователь предоставляют взаимные гарантии своей + право и дееспособности, необходимые для заключения и исполнения + настоящей Оферты. +
++ 1.5. Пользователи не согласные с данной Офертой или с отдельными ее + пунктами, вправе отказаться от использования сайта + https://tripwb.com (далее — «Сайт»). +
+«Компания»
+tripwb.com
+«Администрация Сайта»
++ уполномоченные сотрудники Компании, а также иные лица, + уполномоченные на управление Сайтом и предоставление Сервисов + Пользователям при использовании Сайта в соответствии с настоящим + Соглашением +
+«Сайт»
++ Интернет-Сервис по попутной доставке посылок, а также совместных + автомобильных поездок, доступный на вебсайте tripwb.com +
+«Аккаунт»
++ учетная запись, создание которой является обязательным условием + регистрации на Сайте для получения доступа к использованию + Сервисов Сайта +
++ 3.1. Компанией разработана платформа для оказания информационных + услуг по попутной доставке посылок и совместных автомобильных + поездках, доступная на вебсайте по адресу tripwb.com. Целью данной + платформы является предоставление Перевозчиками, следующим в + определенном направлении, возможности установления связи с + Отправителем, которым необходимо передать посылку, груз, либо + осуществить поездку в том же направлении, для уменьшения собственных + расходов. +
++ 3.2. Нажимая «Войти через Google» или через «Логин» и «Пароль». + Пользователь соглашается, принимает, и обязуется безоговорочно + следовать всем его условиям, также, Пользователь вправе отказаться + от использования Сайта tripwb.com. +
++ 3.3. Компания оставляет за собой право изменять условия Соглашения и + всех его неотъемлемых частей без согласования с Пользователем с + уведомлением последнего посредством размещения на Сайте новой + редакции Соглашения. +
+Последнее обновление: 20.05.2025
++ 1.1. Осы Жария шарт (бұдан әрі – Оферта, шарт) іс-әрекетке + қабілетті жеке тұлғаларға (бұдан әрі — Пайдаланушы) сәлемдемелерді + ілеспе жеткізу не бірлескен автомобиль сапары бойынша ақпараттық + қызметтер көрсетуге tripwb.com Интернет – сервистің (бұдан + әрі-Компания) ресми ұсынысын білдіреді, tripwb.com веб-сайт арқылы + Сайтты пайдалану тәртібін және Пайдаланушылар Сайтты және + Сервистерді пайдаланған кезде туындайтын қатынастарды реттейді. + Компания Сайт пен Сервистердің тәулік бойы қолжетімділігіне + кепілдік бермейді. Компания кез келген уақытта кез келген + Пайдаланушыға https://tripwb.com/ru/info_page/publichnaya-oferta/ + Шартты бұзған кезде Сервистерді пайдаланудан бас тартуға құқылы. +
++ 1.2. Осы Офертаны қабылдау (акцепт) Пайдаланушының қандай да бір + ерекшеліктерсіз және/немесе шектеулерсіз барлық шарттарды толық + және сөзсіз қабылдауын білдіреді және Қазақстан Республикасы + Азаматтық Кодексінің 395-бабына сәйкес теңестіріледі осы + Пайдаланушы келісімі оферта деп танылады. Оферта нысанында + жасалатын Келісім Қазақстан Республикасының Азаматтық кодексінде + көзделген, екіжақты қол қоюды талап етпейді және электрондық түрде + жарамды. +
++ 1.3. Бұл Оферта Пайдаланушы Компания Сайтындағы тіркеу жазбасын + толтыру арқылы Сервис шарттарын қабылдаған сәттен бастап жасалған + (акцептелген) болып есептеледі. +
++ 1.4. Компания мен Пайдаланушы осы Офертаны жасасу және орындау + үшін қажетті өз құқығы мен әрекет қабілеттілігіне өзара + кепілдіктер береді. +
++ 1.5. Осы Офертамен немесе оның жекелеген тармақтарымен келіспеген + пайдаланушылар https://tripwb.com (бұдан әрі - "Сайт") Сайтты + пайдаланудан бас тартуға құқылы. +
+«Компания»
+tripwb.com
+«Сайт Әкімшілігі»
++ Компанияның уәкілетті қызметкерлері, сондай-ақ осы Келісімге + сәйкес Сайтты пайдалану кезінде Пайдаланушыларға Сайтты + басқаруға және Сервистерді ұсынуға уәкілеттік берілген өзге де + тұлғалар, сондай-ақ Сайтқа барлық тиісті айрықша мүліктік + құқықтары, оның ішінде Сайттың домендік атауына және оны + әкімшілендіруді жүзеге асыратын құқығы бар тұлғалар. +
+«Сайт»
++ Сәлемдемелерді, сондай-ақ tripwb.com вебсайтта қолжетімді + бірлескен автомобиль сапарларын ілеспе жеткізу жөніндегі + Интернет-Сервис. +
+«Аккаунт»
++ тіркеу жазбасы, оны құру Сайттың Сервистерін пайдалануға қол + жеткізу үшін Сайтта тіркелудің міндетті шарты болып табылады. +
++ 3.1. Компания сәлемдемелерді ілеспе жеткізу және бірлескен + автомобиль сапарлары бойынша ақпараттық қызметтер көрсету үшін + tripwb.com вебсайтта қолжетімді платформа әзірледі. Бұл + платформаның мақсаты белгілі бір бағытта жүретін + Тасымалдаушылардың сілтемені, жүкті беруі немесе өз шығындарын + азайту үшін сол бағытта жүруді жүзеге асыруы қажет Жөнелтушімен + байланыс орнату мүмкіндігін ұсынуы болып табылады. +
++ 4.1. Сайтты 18 жасқа толған жеке тұлғалар пайдалана алады. + Кәмелетке толмағандарға Сайтта тіркелуге қатаң тыйым салынады. + Платформаға қол жеткізе отырып, оның Сервистерін қолдана отырып + және Аккаунтты тіркей отырып, Пайдаланушылар кәмелетке толған және + толық қабілетті адамдар екендігін растайды және кепілдік береді. +
++ 5.1. Әкімшілік кез-келген Пайдаланушы Сайтта орналастырмас бұрын + кез-келген түрдегі контентті қарауға міндетті емес. +
++ 6.1. Хабарландыруларды жариялау. Төмендегі шарттар орындалған + жағдайда, Сіз Пайдаланушы ретінде Тасымалдаушы (Тасымалдау) және + Жөнелтуші (Тапсырыс) ретінде хабарландырулар жасай және жариялай + аласыз. +
++ Осы дауларды қарау қағидалары (бұдан әрі - Қағидалар) "TWB" онлайн + – сервисін пайдалану туралы келісімнің (бұдан әрі - Келісім) + ажырамас бөлігі болып табылады және Пайдаланушылар арасындағы + дауларды шешу тәртібін белгілейді. +
++ Пайдаланушының хабарландыруын Компания Пайдаланушының осы + Келісімнің талаптарын бұзуы себебінен, сондай-ақ мынадай себептер + бойынша жоюы мүмкін. +
++ Сайттың Сервистерін пайдалана отырып, Пайдаланушы Сайтты және оның + Сервистерді өз тәуекелімен және "сол қалпында" пайдаланатындығына + келісімін растайды. +
++ Мәміле жасалғаннан кейін Пайдаланушыға Пайдаланушылар арасында + мәміле бойынша міндеттемелерді орындау үшін қажетті қосымша + ақпаратпен алмасуға мүмкіндік беретін хабар алмасу қызметіне қол + жетімділік беріледі. +
+Соңғы жаңарту: 20.05.2025
+