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: