Create account

This commit is contained in:
CHIEFSOFT\ameye
2025-07-10 17:36:06 -04:00
parent a243f89fc1
commit 5489524be1
3 changed files with 58 additions and 6 deletions
+1
View File
@@ -43,6 +43,7 @@ ALTER TABLE members ADD account_name VARCHAR(100);
ALTER TABLE members ADD firstname VARCHAR(25); ALTER TABLE members ADD firstname VARCHAR(25);
ALTER TABLE members ADD lastname VARCHAR(25); ALTER TABLE members ADD lastname VARCHAR(25);
ALTER TABLE members ALTER COLUMN password TYPE VARCHAR(250); ALTER TABLE members ALTER COLUMN password TYPE VARCHAR(250);
ALTER TABLE members ADD country VARCHAR(3);
-- UPDATE members SET account_name ='This is the account name'; -- UPDATE members SET account_name ='This is the account name';
-- UPDATE members SET firstname ='Firstname'; -- UPDATE members SET firstname ='Firstname';
+12
View File
@@ -30,6 +30,10 @@ class RegisterService(BaseService):
SEND_EMAIL_FROM = Config.SEND_EMAIL_FROM SEND_EMAIL_FROM = Config.SEND_EMAIL_FROM
SEND_EMAIL_PASS = Config.SEND_EMAIL_PASS SEND_EMAIL_PASS = Config.SEND_EMAIL_PASS
@staticmethod
def encrypt_password(self, password):
"""Encrypt password"""
return generate_password_hash(password)
@staticmethod @staticmethod
def process_complete(data): def process_complete(data):
@@ -40,6 +44,8 @@ class RegisterService(BaseService):
# Simulate processing # Simulate processing
verify_link = validated_data.get('verify_link') verify_link = validated_data.get('verify_link')
username = validated_data.get('username') username = validated_data.get('username')
password = validated_data.get('password')
country = validated_data.get('country')
data ={} data ={}
if not verify_link: if not verify_link:
@@ -56,8 +62,14 @@ class RegisterService(BaseService):
"error_message_key": "use_another_username", "error_message_key": "use_another_username",
} }
return ResponseHelper.error(data=response_data) return ResponseHelper.error(data=response_data)
user= data["user"]
firstname = user['first_name']
lastname = user['last_name']
email = user['email']
encrypted_pass = generate_password_hash(password)
newAccount = Members.add_member(firstname, lastname, email, username,encrypted_pass, country)
country = { country = {
+43 -4
View File
@@ -1,7 +1,8 @@
from datetime import datetime, timezone from datetime import datetime, timezone
from app.extensions import db from app.extensions import db
from sqlalchemy.sql import func from sqlalchemy.sql import func
from sqlalchemy.exc import IntegrityError
import uuid
class Members(db.Model): class Members(db.Model):
__tablename__ = 'members' __tablename__ = 'members'
@@ -48,11 +49,49 @@ class Members(db.Model):
@classmethod @classmethod
def get_member_by_uid(cls, uid): def get_member_by_uid(cls, uid):
"""
Return an offer by its UID.
"""
member = cls.query.filter_by(uid=str(uid)).first() member = cls.query.filter_by(uid=str(uid)).first()
if not member: if not member:
raise ValueError(f"User UID = {uid} not found") raise ValueError(f"User UID = {uid} not found")
return member return member
@classmethod
def add_member(cls, firstname, lastname, email, username,password, country):
# Save the response
member_data = cls(
uid=str(uuid.uuid4()),
firstname=firstname,
lastname=lastname,
username =username,
email=email,
country=country,
password=password,
added=datetime.now(timezone.utc),
updated=datetime.now(timezone.utc)
)
try:
db.session.add(member_data)
except IntegrityError as err:
raise ValueError(f"Database integrity error: {err}")
return member_data
# '''
# Table "public.members"
# Column | Type | Collation | Nullable | Default
# --------------+-----------------------------+-----------+----------+-------------------------------------
# id | integer | | not null | nextval('members_id_seq'::regclass)
# uid | uuid | | | uuid_generate_v4()
# username | character varying(25) | | not null |
# password | character varying(250) | | not null |
# loc | inet | | |
# status | integer | | | 0
# added | timestamp without time zone | | | now()
# updated | timestamp without time zone | | | now()
# email | character varying(100) | | |
# account_name | character varying(100) | | |
# firstname | character varying(25) | | |
# lastname | character varying(25) | | |
# '''