def login(username: str, password: str):
    service = dbs.DynamoService(os.environ["TABLE_NAME"])
    user_data = service.get_data('USER', username)
    if user_data == None:
        return dict(success=False, message="No Data Found")
    print( user_data.get("password").encode('utf-8') )        
    if bcrypt.checkpw(password.encode('utf-8'), user_data.get("password").encode('utf-8')):
        return dict(success=True, message=None)
    else:
        return dict(success=False, message="Passwords Not Matched")
def create_user(username: str, password: str):
    service = dbs.DynamoService(os.environ["TABLE_NAME"])
    if not validate_password(password):
        return dict(success=False, message="Invalid Password")

    encrypted_pass = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt())        
    result = service.put_data(pk="USER", 
            sk=username, 
            start="Active",
            password=f"{encrypted_pass.decode('utf-8')}",
            lifecycle=dict(created=datetime.now().strftime("%Y-%b-%d") ),
            is_active=True,
            kids=[f"{username}"]
        )
    print(result)
    if not result.get("http_status") == 200:
        return dict(success=False, message="Failed to Save")
    return dict(success=True, message="Created Successfully")
import os
import services.dynamodb_service as db
from _datetime import datetime

service = db.DynamoService(os.environ["DYNAMO_TABLE"])


def get_virtual_calendar(year: str, kid: str):
    pk = "|".join(['VIRTUAL_SCHEDULE', year, kid])
    result = service.queryOnPrimaryKey(pk)
    return list(map(lambda x: convert_to_schedule_object(x), result))


def save_calendar(virtual_calendar: dict):
    if not is_valid(virtual_calendar):
        return {'statusCode': 400, 'message': "Malformed Request"}
    db_object = convert_to_db_object(virtual_calendar)
    result = service.put_data(
        db_object.get('pk'), db_object.get('sk'), **{
            'sync': db_object.get('sync'),
            'async': db_object.get('async')
        })
    print(result)
    message = f'Successfully Saved: {virtual_calendar.get("student")} virtual calendar' if result.get('http_status') == 200 else \
        f'An error occurred while saving {virtual_calendar.get("student")} virtual calendar'
    return {'statusCode': result.get("http_status", 500), 'message': message}


def is_valid(schedule: str):
    valid: bool = True
    if schedule.get("student", None) == None or \
Beispiel #4
0
def get_db():
    table_name = 'dev-visual-schedules-data-table'
    return dbs.DynamoService(table_name)