#!/bin/bash
source "$ROOT_PATH"/scripts/common.sh
set -eo pipefail

# Function to handle errors
handle_error() {
    echo_red_bg "Error: $1"
    exit 1
}

file_name="$VERSION_TO_DEPLOY-$LAMBDA_NAME.zip"
if [[ "$ENV_NAME" == "production" && "$AWS_REGION" == "eu-west-1" ]]; then
    s3_bucket="qsase-prod-eu-env-files"
else
    s3_bucket="p81-$ENV_NAME-env-files"
fi

echo_red "Updating function code..."
echo "aws lambda update-function-code --function-name $ENV_NAME-$LAMBDA_NAME  --s3-bucket $s3_bucket --s3-key zips/$file_name --region $LAMBDA_REGION"
aws lambda update-function-code --function-name $ENV_NAME-$LAMBDA_NAME  --s3-bucket $s3_bucket --s3-key zips/$file_name --region $LAMBDA_REGION || handle_error "Failed to update function code for $ENV_NAME-$LAMBDA_NAME."
echo_green "The function code is successfully updated"

echo_red "Adding the tags for lambda..."
lambda_arn=$(aws lambda get-function --function-name  $ENV_NAME-$LAMBDA_NAME --query 'Configuration.FunctionArn' --output text --region $LAMBDA_REGION || handle_error "Failed to get arn of lambda $ENV_NAME-$LAMBDA_NAME.")
aws lambda tag-resource --resource $lambda_arn --tags "LAMBDA_VERSION=$VERSION_TO_DEPLOY,ENV_VERSION=$ENV_FILE_VERSION" --region $LAMBDA_REGION || handle_error "Failed to update tags on lambda to $ENV_NAME-$LAMBDA_NAME."
echo_green "The lambda function is successfully tagged"