diff --git a/abra.sh b/abra.sh index 7f3153e..874653f 100644 --- a/abra.sh +++ b/abra.sh @@ -6,24 +6,14 @@ migrate() { yarn db:migrate --env=production-ssl-disabled } -delete_user() { +delete_user_by_id() { if [ -z "$1" ] || [ -z "$2" ]; then - echo "Usage: ... delete_user " + echo "Usage: ... delete_user_by_id " exit 1 fi - USERID_REMOVE=$(echo "SELECT id FROM users WHERE username = '$1'" | psql -t -A -U outline outline) - USERID_REPLACE=$(echo "SELECT id FROM users WHERE username = '$2'" | psql -t -A -U outline outline) - - if [ -z "$USERID_REMOVE" ]; then - echo "Can't find ID of '$1'" - exit 1 - fi - - if [ -z "$USERID_REPLACE" ]; then - echo "Can't find ID of '$2'" - exit 1 - fi + USERID_REPLACE="$2" + USERID_REMOVE="$1" psql -U outline outline <<- SQL UPDATE documents SET "userId" = '$USERID_REPLACE' WHERE "userId" = '$USERID_REMOVE'; @@ -41,6 +31,48 @@ delete_user() { DELETE FROM notification_settings WHERE "userId" = '$USERID_REMOVE'; DELETE FROM events WHERE "actorId" = '$USERID_REMOVE'; DELETE FROM events WHERE "userId" = '$USERID_REMOVE'; - DELETE FROM users WHERE username = '$1'; + DELETE FROM users WHERE "id" = '$USERID_REMOVE'; SQL } + +delete_user() { + if [ -z "$1" ] || [ -z "$2" ]; then + echo "Usage: ... delete_user " + exit 1 + fi + + USERID_REMOVE=$(echo "SELECT id FROM users WHERE username = '$1'" | psql -t -A -U outline outline) + USERID_REPLACE=$(echo "SELECT id FROM users WHERE username = '$2'" | psql -t -A -U outline outline) + + if [ -z "$USERID_REMOVE" ]; then + echo "Can't find ID of '$1'" + exit 1 + fi + + if [ -z "$USERID_REPLACE" ]; then + echo "Can't find ID of '$2'" + exit 1 + fi + + delete_user_by_id "$USERID_REMOVE" "$USERID_REPLACE" +} + +delete_duplicate_users() { + if [ -z "$1" ]; then + echo "Usage: ... delete_duplicate_users " + exit 1 + fi + + USERIDS=$(echo "SELECT id FROM users WHERE username = '$1' ORDER BY users.\"createdAt\" DESC" | psql -t -A -U outline outline) + + if [ ! "$(echo "$USERIDS" | wc -l)" -gt 1 ]; then + echo "Only one user exists, bailing" + exit 1 + fi + + USERID_NEW=$(echo "$USERIDS" | head -n1) + + for USERID_OLD in $(echo "$USERIDS" | tail -n+2); do + delete_user_by_id "$USERID_OLD" "$USERID_NEW" + done +}