From 2233c422b76b437bdc25964dca2d5222586917b8 Mon Sep 17 00:00:00 2001
From: Troleomotor10
Date: Thu, 7 Nov 2024 18:48:49 +0100
Subject: [PATCH 1/3] docs: add google SSO supabase + update supabase docs
---
.env.example | 5 ++--
CONTRIBUTING.md | 66 ++++++++++++++++++++++++++++++++++----------
supabase/config.toml | 8 +++---
3 files changed, 58 insertions(+), 21 deletions(-)
diff --git a/.env.example b/.env.example
index 8b8552c1..2c15a743 100644
--- a/.env.example
+++ b/.env.example
@@ -1,4 +1,5 @@
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
-
-API_KEY=
+SUPABASE_GOOGLE_AUTH_ID=
+SUPABASE_GOOGLE_AUTH_SECRET=
+API_KEY=
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 4ec724c1..67f17ebd 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -46,33 +46,69 @@ Este mensaje indica que se han añadido instrucciones de instalación local en e
¡Gracias por contribuir! Tu ayuda hace una gran diferencia para el proyecto.
-
-
## Desarrollo local - levantar db de desarrollo local
### Pre requisitos
-- [docker](https://docs.docker.com/engine/install/) y [docker compose](https://docs.docker.com/compose/install/)
-- [cli de supabase](https://supabase.com/docs/guides/local-development/cli/getting-started)
+- [Docker](https://docs.docker.com/engine/install/) y [Docker Compose](https://docs.docker.com/compose/install/)
+- [Supabase CLI](https://supabase.com/docs/guides/local-development/cli/getting-started)
-### Instalar self hosted supabase
+Si ya tienes cualquiera de los dos, **actualizalos para evitar errores**.
-```
+Si usas docker desktop en Windows, esta es la configuración que deberías tener.
+
+
+### Iniciar supabase en local
+
+Entramos en la carpeta del repositorio
+
+```bash
cd ${DIRECTORIO_DE_EMERGENCY_CV}
-supabase login
-supabase init
-supabase link --project-ref nmvcsenkfqbdlfdtiqdo
+```
+
+Iniciamos la base de datos (**tener docker encendido**)
+
+```bash
supabase start
```
-### Para hacer cambios en el schema
+Si no vemos las tablas ni los datos de ejemplo cargados podemos refrescar la base de datos con:
+
+```bash
+supabase db reset
+```
+
+### Hacer cambios en el schema
-- Editar como queremos que sea en local (studio de supabase)
-- Ejecutar el comando:
+#### Crear migracion automatica
+Nos interesa usar esta opción, cuando queremos **editar la base de datos desde el studio web**
+
+Cuando acabemos de realizar los cambios en el studio web, ejecutaremos el siguiente comando para generar la migration.
+
+```bash
+supabase db diff -f nombre_migracion
```
-// nombre de la migracion es indicativo, no tiene nigun efecto
-supabase db diff -f ${NOMBRE_DE_LA_MIGRACION}
+
+#### Crear migración manual
+
+Nos interesa usar esta opción, cuando queremos **editar la base de datos con codigo SQL manual**.
+
+Primero, creamos la el archivo migration con
+
+```bash
+supabase migration new nombre_migracion
+```
+
+Se creara un **nuevo fichero** con el nombre que hemos usado **en supabase/migrations**
+
+En ese archivo añadiremos todo el código SQL que necesitemos
+
+Si queremos visualizar nuestros cambios en local, podemos usar
+
+```bash
+supabase db reset
```
-- Esto generara una migracion en el local, hay que añadir esto al PR y github actions lo pondra en produccion.
+
+La migration que generemos, la añadiremos en el PR.
diff --git a/supabase/config.toml b/supabase/config.toml
index 0172bd1c..a79ce9fc 100644
--- a/supabase/config.toml
+++ b/supabase/config.toml
@@ -190,11 +190,11 @@ verify_enabled = true
# Use an external OAuth provider. The full list of providers are: `apple`, `azure`, `bitbucket`,
# `discord`, `facebook`, `github`, `gitlab`, `google`, `keycloak`, `linkedin_oidc`, `notion`, `twitch`,
# `twitter`, `slack`, `spotify`, `workos`, `zoom`.
-[auth.external.apple]
-enabled = false
-client_id = ""
+[auth.external.google]
+enabled = true
+client_id = "env(SUPABASE_GOOGLE_AUTH_ID)"
# DO NOT commit your OAuth provider secret to git. Use environment variable substitution instead:
-secret = "env(SUPABASE_AUTH_EXTERNAL_APPLE_SECRET)"
+secret = "env(SUPABASE_GOOGLE_AUTH_SECRET)"
# Overrides the default auth redirectUrl.
redirect_uri = ""
# Overrides the default auth provider URL. Used to support self-hosted gitlab, single-tenant Azure,
From 9e8dab506566d8c4cc69724ead04cc23591d1192 Mon Sep 17 00:00:00 2001
From: Troleomotor10
Date: Thu, 7 Nov 2024 18:49:16 +0100
Subject: [PATCH 2/3] feat: add privacy policy google auth
---
src/components/auth/PhoneNumberDialog.js | 60 +++++++++++++++++++-----
1 file changed, 48 insertions(+), 12 deletions(-)
diff --git a/src/components/auth/PhoneNumberDialog.js b/src/components/auth/PhoneNumberDialog.js
index 94da5dee..53404a42 100644
--- a/src/components/auth/PhoneNumberDialog.js
+++ b/src/components/auth/PhoneNumberDialog.js
@@ -12,27 +12,41 @@ import { isValidPhone } from '@/helpers/utils';
const MODAL_NAME = 'phone-number';
const PhoneForm = ({ onSubmit }) => {
- const [phoneNumber, setPhoneNumber] = useState('');
+ const [formData, setFormData] = useState({
+ phoneNumber: '',
+ privacyPolicy: '',
+ });
const handleSubmit = useCallback(
(e) => {
e.preventDefault();
- /* Form validation */
- if (!isValidPhone(phoneNumber)) {
+ /* PHONE VALIDATION */
+ if (!isValidPhone(formData.phoneNumber)) {
alert('El teléfono de contacto no es válido.');
return;
}
- const formatedPhoneNumber = formatPhoneNumber(phoneNumber);
- onSubmit(formatedPhoneNumber);
- setPhoneNumber('');
+ /* POLICY PRIVACY VALIDATION */
+ if (!formData.privacyPolicy) {
+ alert('Para continuar, debes aceptar la Política de Privacidad.');
+ return;
+ }
+
+ const formatedPhoneNumber = formatPhoneNumber(formData.phoneNumber);
+
+ onSubmit(formData.phoneNumber, formData.privacyPolicy);
+
+ setFormData({
+ phoneNumber: '',
+ privacyPolicy: '',
+ });
},
- [onSubmit, phoneNumber],
+ [onSubmit, formData],
);
const handleChange = useCallback((phoneNumber) => {
- setPhoneNumber(phoneNumber);
+ setFormData((formData) => ({ ...formData, phoneNumber }))
}, []);
return (
@@ -51,9 +65,31 @@ const PhoneForm = ({ onSubmit }) => {
Tu número de teléfono no será usado con ningún otro propósito ni compartido con terceras personas.