From 862ae199cbf495299a8f5bea9311823ea7d0c531 Mon Sep 17 00:00:00 2001
From: kauan nery <113049473+Kauannery@users.noreply.github.com>
Date: Mon, 3 Jun 2024 15:47:31 -0300
Subject: [PATCH] Revert "tests code"
This reverts commit ca0da1d88ce957dcc2599d5c363f285287c7af48.
---
api/view_cors.py | 7 ---
api/views.py | 59 --------------------
core/middleware.py | 15 -----
frontend/package.json | 3 +-
frontend/src/Buttonapi.jsx | 55 ++++++++++++++++++
frontend/src/Login.jsx | 51 ++++++-----------
frontend/src/index.jsx | 8 +--
pdm.lock | 111 ++++++++++++-------------------------
pyproject.toml | 6 --
webapp/settings.py | 50 +++++++----------
10 files changed, 130 insertions(+), 235 deletions(-)
delete mode 100644 api/view_cors.py
delete mode 100644 core/middleware.py
diff --git a/api/view_cors.py b/api/view_cors.py
deleted file mode 100644
index 77301ca..0000000
--- a/api/view_cors.py
+++ /dev/null
@@ -1,7 +0,0 @@
-from django.http import JsonResponse
-from rest_framework.decorators import api_view
-from rest_framework import status
-
-@api_view(['POST'])
-def cors_test(request):
- return JsonResponse({'status':'OK'}, status=status.HTTP_200_OK)
\ No newline at end of file
diff --git a/api/views.py b/api/views.py
index 9559810..143c2b1 100644
--- a/api/views.py
+++ b/api/views.py
@@ -12,20 +12,12 @@
from google_auth_oauthlib.flow import Flow
from google.auth.transport import Request
-#new-imports
-from google_auth_oauthlib.flow import Flow
-from google.auth.transport import Request
-
os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"
SCOPES = [
"https://www.googleapis.com/auth/calendar.app.created",
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile",
-<<<<<<< HEAD
"openid",
-=======
- "openid",
->>>>>>> da576de (tests code)
]
REDIRECT_URL = f"{settings.BASE_URL}/calendar/redirect/"
@@ -56,7 +48,6 @@ def calendar_init_view(request):
@api_view(['POST'])
def calendar_token(request):
config = get_secret(f"{settings.ENVIRONMENT}/google/calendar")
-<<<<<<< HEAD
flow = Flow.from_client_config(config,scopes=SCOPES,redirect_uri="http://localhost:3000")
code = request.data['code']
@@ -72,55 +63,5 @@ def calendar_token(request):
except Exception as e:
print(f"Error: {e}")
return JsonResponse({"error": str(e)})
-=======
- flow = Flow.from_client_config(config,scopes=SCOPES,redirect_uri="http://127.0.0.1:3000")
- code = request.data['code']
- print('code', code)
- # flow.fetch_token(code)
- # 4/0AdLIrYdjDBOqa7mxm9bGUUdXo_lyOu1YgKIiDh6_UhBCmfZNI_JMkRDLvg33YTHPSaWe2A
- try:
- credentials = flow.fetch_token(code=code)
- print('crendentials:', flow.credentials)
- except Exception as e:
- print(f"Error: {e}")
- return JsonResponse({"error": str(e)})
-
- userinfo_service = googleapiclient.discovery.build("oauth2", "v2", credentials=flow.credentials)
- user_info = userinfo_service.userinfo().get().execute()
-
- email = user_info.get("email")
- User = get_user_model()
- user, created = User.objects.get_or_create(username=email, email=email)
- if created:
- user.set_unusable_password()
- user.save()
-
- if not CredentialsService.get_for(user):
- saved_credentials = CredentialsService.create_for(user, credentials)
- else:
- saved_credentials = CredentialsService.update_for(user, credentials)
- if not saved_credentials:
- return redirect("api/v1/calendar/init")
-
- saved_credentials.user = user
- saved_credentials.save(update_fields=["user"])
-
- authenticated_user = authenticate(request, username=email)
- if authenticated_user:
- login(request, authenticated_user)
-
- try:
- service = googleapiclient.discovery.build(API_SERVICE_NAME, API_VERSION, credentials=flow.credentials)
-
- if not user.calendar_id:
- calendar = {"summary": "BaheaCal", "timeZone": "America/Bahia"}
- created_calendar = service.calendars().insert(body=calendar).execute()
- user.calendar_id = created_calendar["id"]
- user.save(update_fields=["calendar_id"])
-
- service.events().list(calendarId=user.calendar_id).execute()
- except Exception as e:
- return JsonResponse({"error": str(e)})
->>>>>>> da576de (tests code)
else:
return JsonResponse({"sucess": True})
\ No newline at end of file
diff --git a/core/middleware.py b/core/middleware.py
deleted file mode 100644
index bbdf56c..0000000
--- a/core/middleware.py
+++ /dev/null
@@ -1,15 +0,0 @@
-class CustomCorsMiddleware:
- def __init__(self, get_response):
- self.get_response = get_response
- # One-time configuration and initialization.
-
- def __call__(self, request):
- # Code to be executed for each request before
- # the view (and later middleware) are called.
-
- response = self.get_response(request)
- response["Access-Control-Allow-Origin"] = "*"
- response["Access-Control-Allow-Headers"] = "*"
-
- # Code to be executed for each re
- return response
\ No newline at end of file
diff --git a/frontend/package.json b/frontend/package.json
index 76c5832..304614e 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -14,8 +14,7 @@
"dependencies": {
"@react-oauth/google": "^0.12.1",
"@types/react": "^18.2.79",
- "axios": "^1.7.2",
- "cors": "^2.8.5",
+ "axios": "^1.6.8",
"eslint-plugin-react-refresh": "^0.4.6",
"jwt-decode": "^4.0.0",
"react": "^18.2.0",
diff --git a/frontend/src/Buttonapi.jsx b/frontend/src/Buttonapi.jsx
index e69de29..3108379 100644
--- a/frontend/src/Buttonapi.jsx
+++ b/frontend/src/Buttonapi.jsx
@@ -0,0 +1,55 @@
+import axios from 'axios'
+
+export default function Login1() {
+ const Login1 = async () => {
+ try {
+ const response = await axios.post('http://localhost:8000/api/v1/calendar/token/', {'bla':'bla'}, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ });
+ console.log('response-data: ', response.data);
+ } catch (error) {
+ console.error('error: ', error);
+ }
+ }
+
+ return ()
+}
+
+
+
+
+
+// import {} from 'react-router-dom'
+// import axios from 'axios'
+
+
+// export default function Login1() {
+// const Login1 = async () => {
+
+
+
+
+// var options = {
+// method: 'POST',
+// url: 'http://localhost:8000/api/v1/calendar/token/',
+// headers: {
+// 'Content-Type': 'application/json',
+// 'Allow-Control-Allow-Origin': '*'
+// },
+// body: {'bla':'bla'}
+
+// };
+
+
+// axios.request(options).then(function (response) {
+// console.log(response.data);
+// }).catch(function (error) {
+// console.error(error);
+// });
+
+
+// }
+// return ()
+// }
diff --git a/frontend/src/Login.jsx b/frontend/src/Login.jsx
index d89c655..cd63d87 100644
--- a/frontend/src/Login.jsx
+++ b/frontend/src/Login.jsx
@@ -26,43 +26,28 @@ export default function Login() {
// );
const handleLogin = async (credentialResponse) => {
- console.log('credential Response', credentialResponse);
+ var obj = jwtDecode(credentialResponse.credential);
+ var data = JSON.stringify(obj);
+ console.log(data);
- try {
- const response = await axios.post('http://localhost:8000/api/v1/calendar/token/', credentialResponse, {
- headers: {
- // 'Access-Control-Allow-Headers': '*',
- 'Content-Type': 'application/json',
- // 'Allow-Control-Allow-Origin': '*',
- // 'Access-Control-Allow-Methods': '*'
- }
- });
-
- console.log('response-data: ', response.data);
- } catch (error) {
- console.error('error: ', error);
- }
- }
-
- const login = useGoogleLogin({
- scope: "https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/calendar.app.created https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile openid",
- flow: 'auth-code',
- access_type: 'offline',
- prompt: 'consent',
- onSuccess: handleLogin,
- });
+ // // const data = {your data to send to server};
- // return ()
- return ()
+ const config = {
+ method: 'POST',
+ url: 'http://127.0.0.1:8000/api/v1/calendar/token/',
+ headers: {},
+ data: data
+ }
- // return( {
- // console.log(credentialResponse);
- // }}
- // onError={() => {
- // console.log('Login Failed');
- // }}
- // />)
+ await axios(config)
+}
+ return(
+
+
+ )
}
diff --git a/frontend/src/index.jsx b/frontend/src/index.jsx
index 2b1250e..976deac 100644
--- a/frontend/src/index.jsx
+++ b/frontend/src/index.jsx
@@ -3,8 +3,6 @@ import ReactDOM from 'react-dom/client'
import Login from './Login.jsx'
import Login1 from './Buttonapi.jsx'
-import Login1 from './Buttonapi.jsx'
-
import {
createBrowserRouter,
RouterProvider,
@@ -29,11 +27,7 @@ const router = createBrowserRouter([
element: ,
},
- {
- path: "/buttonapi",
- element: ,
- },
]);
ReactDOM.createRoot(document.getElementById('root')).render(
@@ -42,4 +36,4 @@ ReactDOM.createRoot(document.getElementById('root')).render(
-)
\ No newline at end of file
+)
diff --git a/pdm.lock b/pdm.lock
index 119d16b..99353b0 100644
--- a/pdm.lock
+++ b/pdm.lock
@@ -5,7 +5,7 @@
groups = ["default", "prod-only", "dev"]
strategy = ["cross_platform", "inherit_metadata"]
lock_version = "4.4.1"
-content_hash = "sha256:6e124086ce1f6ab9b02f196ac70693f51c0d23c0f734e56d0ef15e05fdf1ab6b"
+content_hash = "sha256:5ef66c805e46f0e2e277d620231dacbc53bc03600137efd2b83bf8c4d81a48db"
[[package]]
name = "arrow"
@@ -76,35 +76,35 @@ files = [
]
[[package]]
-name = "boto3"
-version = "1.34.111"
+name = "black"
+version = "24.4.2"
requires_python = ">=3.8"
-summary = "The AWS SDK for Python"
-groups = ["default"]
-dependencies = [
- "botocore<1.35.0,>=1.34.111",
- "jmespath<2.0.0,>=0.7.1",
- "s3transfer<0.11.0,>=0.10.0",
-]
-files = [
- {file = "boto3-1.34.111-py3-none-any.whl", hash = "sha256:d6a8e77db316c6e1d9a25f77c795ed1e0a8bc621f863ce26d04b2225d30f2dce"},
- {file = "boto3-1.34.111.tar.gz", hash = "sha256:8f18d212b9199dbbd9d596dd5929685b583ac938c60cceeac2e045c0c5d10323"},
-]
-
-[[package]]
-name = "botocore"
-version = "1.34.111"
-requires_python = ">=3.8"
-summary = "Low-level, data-driven core of boto 3."
-groups = ["default"]
+summary = "The uncompromising code formatter."
+groups = ["dev"]
dependencies = [
- "jmespath<2.0.0,>=0.7.1",
- "python-dateutil<3.0.0,>=2.1",
- "urllib3!=2.2.0,<3,>=1.25.4; python_version >= \"3.10\"",
-]
-files = [
- {file = "botocore-1.34.111-py3-none-any.whl", hash = "sha256:e10affb7f372d50da957260adf2753a3f153bf90abe6910e11f09d1e443b5515"},
- {file = "botocore-1.34.111.tar.gz", hash = "sha256:0e0fb9b605c46393d5c7c69bd516b36058334bdc8f389e680c6efcf0727f25db"},
+ "click>=8.0.0",
+ "mypy-extensions>=0.4.3",
+ "packaging>=22.0",
+ "pathspec>=0.9.0",
+ "platformdirs>=2",
+ "tomli>=1.1.0; python_version < \"3.11\"",
+ "typing-extensions>=4.0.1; python_version < \"3.11\"",
+]
+files = [
+ {file = "black-24.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dd1b5a14e417189db4c7b64a6540f31730713d173f0b63e55fabd52d61d8fdce"},
+ {file = "black-24.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e537d281831ad0e71007dcdcbe50a71470b978c453fa41ce77186bbe0ed6021"},
+ {file = "black-24.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaea3008c281f1038edb473c1aa8ed8143a5535ff18f978a318f10302b254063"},
+ {file = "black-24.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:7768a0dbf16a39aa5e9a3ded568bb545c8c2727396d063bbaf847df05b08cd96"},
+ {file = "black-24.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:257d724c2c9b1660f353b36c802ccece186a30accc7742c176d29c146df6e474"},
+ {file = "black-24.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bdde6f877a18f24844e381d45e9947a49e97933573ac9d4345399be37621e26c"},
+ {file = "black-24.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e151054aa00bad1f4e1f04919542885f89f5f7d086b8a59e5000e6c616896ffb"},
+ {file = "black-24.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:7e122b1c4fb252fd85df3ca93578732b4749d9be076593076ef4d07a0233c3e1"},
+ {file = "black-24.4.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:accf49e151c8ed2c0cdc528691838afd217c50412534e876a19270fea1e28e2d"},
+ {file = "black-24.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:88c57dc656038f1ab9f92b3eb5335ee9b021412feaa46330d5eba4e51fe49b04"},
+ {file = "black-24.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be8bef99eb46d5021bf053114442914baeb3649a89dc5f3a555c88737e5e98fc"},
+ {file = "black-24.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:415e686e87dbbe6f4cd5ef0fbf764af7b89f9057b97c908742b6008cc554b9c0"},
+ {file = "black-24.4.2-py3-none-any.whl", hash = "sha256:d36ed1124bb81b32f8614555b34cc4259c3fbc7eec17870e8ff8ded335b58d8c"},
+ {file = "black-24.4.2.tar.gz", hash = "sha256:c872b53057f000085da66a19c55d68f6f8ddcac2642392ad3a355878406fbd4d"},
]
[[package]]
@@ -372,35 +372,6 @@ files = [
{file = "Django-5.0.4.tar.gz", hash = "sha256:4bd01a8c830bb77a8a3b0e7d8b25b887e536ad17a81ba2dce5476135c73312bd"},
]
-[[package]]
-name = "django-cors-headers"
-version = "4.3.1"
-requires_python = ">=3.8"
-summary = "django-cors-headers is a Django application for handling the server headers required for Cross-Origin Resource Sharing (CORS)."
-groups = ["default"]
-dependencies = [
- "Django>=3.2",
- "asgiref>=3.6",
-]
-files = [
- {file = "django-cors-headers-4.3.1.tar.gz", hash = "sha256:0bf65ef45e606aff1994d35503e6b677c0b26cafff6506f8fd7187f3be840207"},
- {file = "django_cors_headers-4.3.1-py3-none-any.whl", hash = "sha256:0b1fd19297e37417fc9f835d39e45c8c642938ddba1acce0c1753d3edef04f36"},
-]
-
-[[package]]
-name = "django-model-utils"
-version = "4.5.1"
-requires_python = ">=3.8"
-summary = "Django model mixins and utilities"
-groups = ["default"]
-dependencies = [
- "Django>=3.2",
-]
-files = [
- {file = "django_model_utils-4.5.1-py3-none-any.whl", hash = "sha256:f1141fc71796242edeffed5ad53a8cc57f00d345eb5a3a63e3f69401cd562ee2"},
- {file = "django_model_utils-4.5.1.tar.gz", hash = "sha256:1220f22d9a467d53a1e0f4cda4857df0b2f757edf9a29955c42461988caa648a"},
-]
-
[[package]]
name = "djangorestframework"
version = "3.15.1"
@@ -736,17 +707,6 @@ files = [
{file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"},
]
-[[package]]
-name = "jmespath"
-version = "1.0.1"
-requires_python = ">=3.7"
-summary = "JSON Matching Expressions"
-groups = ["default"]
-files = [
- {file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"},
- {file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"},
-]
-
[[package]]
name = "matplotlib-inline"
version = "0.1.7"
@@ -1109,17 +1069,18 @@ files = [
]
[[package]]
-name = "s3transfer"
-version = "0.10.1"
-requires_python = ">= 3.8"
-summary = "An Amazon S3 Transfer Manager"
+name = "sentry-sdk"
+version = "2.3.1"
+requires_python = ">=3.6"
+summary = "Python client for Sentry (https://sentry.io)"
groups = ["default"]
dependencies = [
- "botocore<2.0a.0,>=1.33.2",
+ "certifi",
+ "urllib3>=1.26.11",
]
files = [
- {file = "s3transfer-0.10.1-py3-none-any.whl", hash = "sha256:ceb252b11bcf87080fb7850a224fb6e05c8a776bab8f2b64b7f25b969464839d"},
- {file = "s3transfer-0.10.1.tar.gz", hash = "sha256:5683916b4c724f799e600f41dd9e10a9ff19871bf87623cc8f491cb4f5fa0a19"},
+ {file = "sentry_sdk-2.3.1-py2.py3-none-any.whl", hash = "sha256:c5aeb095ba226391d337dd42a6f9470d86c9fc236ecc71cfc7cd1942b45010c6"},
+ {file = "sentry_sdk-2.3.1.tar.gz", hash = "sha256:139a71a19f5e9eb5d3623942491ce03cf8ebc14ea2e39ba3e6fe79560d8a5b1f"},
]
[[package]]
diff --git a/pyproject.toml b/pyproject.toml
index fbd91f8..8c4bf04 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -36,13 +36,7 @@ dependencies = [
"Django>=5.0.4",
"dynaconf>=3.2.5",
"djangorestframework>=3.15.1",
-<<<<<<< HEAD
"sentry-sdk>=2.3.1",
-=======
- "boto3>=1.34.111",
- "django-model-utils>=4.5.1",
- "django-cors-headers>=4.3.1",
->>>>>>> da576de (tests code)
]
version = "0.1.0"
diff --git a/webapp/settings.py b/webapp/settings.py
index 8399a85..89304b9 100644
--- a/webapp/settings.py
+++ b/webapp/settings.py
@@ -50,28 +50,16 @@
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
- "rest_framework",
- "corsheaders",
"core",
"users",
-
+ 'rest_framework',
]
-REST_FRAMEWORK = {
- 'DEFAULT_PARSER_CLASSES': (
- 'rest_framework.parsers.JSONParser',
- 'rest_framework.parsers.FormParser',
- 'rest_framework.parsers.MultiPartParser',
- ),
-}
-
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
- "corsheaders.middleware.CorsMiddleware",
- "core.middleware.CustomCorsMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
@@ -167,21 +155,21 @@
# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
-CSRF_TRUSTED_ORIGINS = ["http://localhost:3000"]
-CORS_ALLOWED_ORIGINS = ["http://localhost:3000"]
-CORS_ORIGIN_WHITELIST = ['http://localhost:3000']
-CORS_ALLOW_ALL_ORIGINS = True
-SECURE_CROSS_ORIGIN_OPENER_POLICY = None
-
-CORS_ALLOW_HEADERS = [
-'access-control-allow-headers',
-'accept',
-'accept-encoding',
-'authorization',
-'content-type',
-'dnt',
-'origin',
-'user-agent',
-'x-csrftoken',
-'x-requested-with',
-]
\ No newline at end of file
+CSRF_TRUSTED_ORIGINS = [BASE_URL]
+
+sentry_sdk.init(
+ dsn="https://e19909e9414044d9981111c4b4acdf30@app.glitchtip.com/6805",
+ environment=ENVIRONMENT,
+ integrations=[
+ DjangoIntegration(
+ transaction_style='url',
+ middleware_spans=True,
+ signals_spans=True,
+ signals_denylist=[
+ django.db.models.signals.pre_init,
+ django.db.models.signals.post_init,
+ ],
+ cache_spans=False,
+ ),
+ ],
+)