Skip to content

Instantly share code, notes, and snippets.

@drewbrokke
Last active May 4, 2018 20:30
Show Gist options
  • Save drewbrokke/36bbfd7a978769ee8ef1c40f41de7ef0 to your computer and use it in GitHub Desktop.
Save drewbrokke/36bbfd7a978769ee8ef1c40f41de7ef0 to your computer and use it in GitHub Desktop.
uadDemo helper script
#!/bin/bash
which jq 1>/dev/null || error "This script requires jq to be installed. See https://stedolan.github.io/jq/ for more details."
VERBOSE=0
while getopts v FLAGS; do
case $FLAGS in
v) VERBOSE=1 ;;
*) ;;
esac
done
shift $((OPTIND-1))
#################### HELPER FUNCTIONS ####################
function error() {
echo "[uadDemo] ERROR: $1"
exit 1
}
function log() {
if [[ $VERBOSE -gt 0 ]] ; then
echo "[uadDemo] INFO: $1"
fi
}
function step() {
echo "[uadDemo] STEP: $1"
}
GROUP_ID=0
function addAnnouncements() {
log "Adding announcements data..."
for i in {1..40} ; do
local ENTRY_ID
ENTRY_ID="$(
curl -s http://localhost:8080/api/jsonws/announcementsentry/add-entry \
-u [email protected]:test \
-d classNameId=0 \
-d classPK=0 \
-d title="$1: Test Announcements Entry $i" \
-d content="Hear ye, hear ye" \
-d url="" \
-d type="general" \
-d -displayDate= \
-d -expirationDate= \
-d priority=0 \
-d alert=false |
jq '.entryId | tonumber'
)"
curl -s http://localhost:8080/api/jsonws/announcementsflag/add-flag \
-u [email protected]:test \
-d entryId=${ENTRY_ID} \
-d value=1 1>/dev/null
done
}
function addBlogs() {
log "Adding blogs data..."
for i in {1..40} ; do
curl -s http://localhost:8080/api/jsonws/blogsentry/add-entry \
-u "[email protected]:test" \
-d title="A test blog post" \
-d subtitle="a test subtitle" \
-d description="This what we do" \
-d content="This is the content" \
-d displayDateMonth=1 \
-d displayDateDay=1 \
-d displayDateYear=1985 \
-d displayDateHour=1 \
-d displayDateMinute=1 \
-d allowPingbacks=false \
-d allowTrackbacks=false \
-d trackbacks= \
-d coverImageCaption="asdf" \
-d -coverImageImageSelector= \
-d -smallImageImageSelector=
done
}
function addBookmarks() {
log "Adding bookmarks data..."
for i in {1..40} ; do
curl -s http://localhost:8080/api/jsonws/bookmarks.bookmarksentry/add-entry \
-u "[email protected]:test" \
-d groupId=${GROUP_ID} \
-d folderId=0 \
-d name="$1: testBookmark $i" \
-d url="http://www.google.com" \
-d description="A test bookmark by $1" 1>/dev/null
done
}
#################### BEGIN SCRIPT ####################
#################### GET COMPANY ID ####################
step "Get companyId by mx"
COMPANY_ID="$(
curl -s http://localhost:8080/api/jsonws/company/get-company-by-mx \
-u [email protected]:test \
-d mx='liferay.com' |
jq '.companyId | tonumber'
)"
log "COMPANY_ID: ${COMPANY_ID}"
#################### GET GROUP ID ####################
step "Get groupId by search"
GROUP_ID="$(
curl -s http://localhost:8080/api/jsonws/group/search \
-u [email protected]:test \
-d companyId=20099 \
-d name='Liferay' \
-d description='' \
-d params= \
-d start=0 \
-d end=1 |
jq '.[0] | .groupId | tonumber'
)"
log "GROUP_ID: ${GROUP_ID}"
#################### ADD USER ####################
step "Add user"
FIRST_NAME="$(curl -s http://faker.hook.io?property=name.firstName | sed 's/"//g')"
LAST_NAME="$(curl -s http://faker.hook.io?property=name.lastName | sed 's/"//g')"
SCREEN_NAME="${FIRST_NAME}${LAST_NAME}"
USER="$(
curl -s http://localhost:8080/api/jsonws/user/add-user \
-u [email protected]:test \
-d companyId=${COMPANY_ID} \
-d autoPassword=false \
-d password1="test" \
-d password2="test" \
-d autoScreenName=false \
-d screenName="${SCREEN_NAME}" \
-d emailAddress="${SCREEN_NAME}@liferay.com" \
-d facebookId=0 \
-d openId="" \
-d locale= \
-d firstName="${FIRST_NAME}" \
-d middleName="" \
-d lastName="${LAST_NAME}" \
-d prefixId=0 \
-d suffixId=0 \
-d male=true \
-d birthdayMonth=1 \
-d birthdayDay=1 \
-d birthdayYear=1901 \
-d jobTitle="" \
-d groupIds= \
-d organizationIds= \
-d roleIds= \
-d userGroupIds= \
-d sendEmail=false
)"
USER_ID="$(echo $USER | jq '.userId | tonumber')"
SCREEN_NAME="$(echo $USER | jq '.screenName' | sed 's/"//g')"
log "USER_ID: ${USER_ID}"
log "SCREEN_NAME: ${SCREEN_NAME}"
#################### GET ADMINISTRATOR ROLE ID ####################
step "Get administrator role Id"
ADMINISTRATOR_ROLE_ID="$(
curl -s http://localhost:8080/api/jsonws/role/get-role \
-u [email protected]:test \
-d companyId=${COMPANY_ID} \
-d name="Administrator" |
jq '.roleId | tonumber'
)"
log "ADMINISTRATOR_ROLE_ID: ${ADMINISTRATOR_ROLE_ID}"
#################### GIVE THE ADMIN ROLE TO THE USER ####################
step "Give user administrator role"
curl -s http://localhost:8080/api/jsonws/role/add-user-roles \
-u [email protected]:test \
-d userId=${USER_ID} \
-d roleIds=[${ADMINISTRATOR_ROLE_ID}] 1>/dev/null
#################### ADD DEMO DATA ####################
step "Adding demo data"
addBlogs "${SCREEN_NAME}"
# addBookmarks "${SCREEN_NAME}"
addAnnouncements "${SCREEN_NAME}"
#################### REMOVE THE ADMIN ROLE FROM THE USER ####################
step "Remove administrator role from user"
curl -s http://localhost:8080/api/jsonws/role/unset-user-roles \
-u [email protected]:test \
-d userId=${USER_ID} \
-d roleIds=[${ADMINISTRATOR_ROLE_ID}] 1>/dev/null
echo "Added demo data for user: $FIRST_NAME $LAST_NAME ($SCREEN_NAME)"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment