import json
import boto3
from os import environ
from aws_lambda_powertools.utilities import parameters

import pymysql


client = boto3.client('rds')  # get the rds object


def db_ops():
    secret = parameters.get_secret(environ.get('secret_arn'), transform='json', max_age=60)
    username = secret.get('username')
    password = secret.get('password')

    try:
        # create a connection object
        connection = pymysql.connect(
            host=environ.get('rds_endpoint'),
            # getting the rds proxy endpoint from the environment variables
            user=username,
            password=password,
            db=environ.get('database'),
            charset='utf8mb4',
            cursorclass=pymysql.cursors.DictCursor,
            ssl={"use": True}
        )
    except pymysql.MySQLError as e:
        return e

    return connection


def lambda_handler(event, context):
    conn = db_ops()
    cursor = conn.cursor()
    query = "select curdate() from dual"
    cursor.execute(query)
    results = cursor.fetchmany(1)

    return {
        'statusCode': 200,
        'body': json.dumps(results, default=str)
    }