setup:
	export EAGER_SERVICE_LOADING=1 \
		   SERVICES=lambda,ssm \
		   AWS_ACCESS_KEY_ID=test \
		   AWS_SECRET_ACCESS_KEY=test
	dockerd &
	FILESYSTEM_ROOT=./.cache/localstack/volume localstack start &
	zip -r handler.zip ./*
	awslocal lambda create-function \
		--function-name rss-nostr-lambda \
		--runtime nodejs20.x \
		--timeout 900 \
		--zip-file fileb://handler.zip \
		--handler index.handler \
		--role arn:aws:iam::000000000000:role/lambda-role \
		--region us-east-1
	awslocal ssm put-parameter \
		--name /rss-nostr-lambda/last-run-time \
		--value "2023-11-23T14:46:56Z" \
		--overwrite
	rm handler.zip

invoke:
	awslocal lambda invoke \
		--region us-east-1 \
	   	--function-name rss-nostr-lambda \
		--cli-binary-format raw-in-base64-out \
		--payload '{"feedUrl":"https://nitter.1d4.us/culturaltutor/rss","nostrNsec":"nsec1eg458xl7d3eywld94rpfx8daa6h2hqfqxylmk43dz6ep8q388e2sfe4thg","lastRunTimeParam":"/rss-nostr-lambda/last-run-time"}' \
		response.json

invoke-dryrun:
	awslocal lambda invoke \
		--region us-east-1 \
	   	--function-name rss-nostr-lambda \
		--cli-binary-format raw-in-base64-out \
		--payload '{"dryRun":true,"feedUrl":"https://nitter.1d4.us/culturaltutor/rss","nostrNsec":"nsec1eg458xl7d3eywld94rpfx8daa6h2hqfqxylmk43dz6ep8q388e2sfe4thg","lastRunTimeParam":"/rss-nostr-lambda/last-run-time"}' \
		response.json

recreate:
	zip -r handler.zip ./*
	unset PYTHONPATH
	awslocal lambda update-function-code \
		--function-name rss-nostr-lambda \
		--zip-file fileb://handler.zip
	rm handler.zip

cleanup:
	awslocal lambda delete-function \
		--function-name rss-nostr-lambda
