This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export const cronEndpoint = functions.https.onRequest((request, response) => { | |
if (functions.config().cron.apikey !== request.body.key) { | |
response.status(401).send("I'm sorry Dave, I'm afraid I can't do that"); | |
return; | |
} | |
response.status(200).send("The time is now."); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export const countReviews = functions.firestore.document("movies/{movieId}/reviews/{reviewId}").onCreate(async (event) => { | |
console.log(`Got a ${event.data.data().stars} star review`); | |
const review = event.data.data(); | |
admin.database().ref("movieRevies").child(event.params.movieId).transaction(movie => { | |
if (!movie) { | |
return movie; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export const createMovieReviewAggregate = functions.firestore.document("movies/{movieId}").onCreate(event => { | |
return admin.database().ref("movieRevies").child(event.params.movieId).set({ | |
numReviews: 0, | |
totalReviewScore: 0, | |
averageScore: 0 | |
}); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export const countReviews = functions.firestore.document("movies/{movieId}/reviews/{reviewId}").onCreate(async (event) => { | |
console.log(`Got a ${event.data.data().stars} star review`); | |
const review = event.data.data(); | |
const movieRef = admin.firestore().collection("movies").doc(event.params.movieId); | |
admin.firestore().runTransaction(async transaction => { | |
const movie = (await transaction.get(movieRef)).data(); | |
movie.numReviews += 1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export const countReviews = functions.firestore.document("movies/{movieId}/reviews/{reviewId}").onCreate(async (event) => { | |
console.log(`Got a ${event.data.data().stars} star review`); | |
const review = event.data.data(); | |
const movieRef = admin.firestore().collection("movies").doc(event.params.movieId); | |
const movie = (await movieRef.get()).data(); | |
movie.numReviews += 1; | |
movie.totalReviewScore += review.stars; | |
movie.averageScore = (movie.totalReviewScore/movie.numReviews).toPrecision(3); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const numReviews = 20; | |
const promises = []; | |
for (let i = 0; i < numReviews; i++) { | |
const numStars = Math.trunc(Math.random() * 5) + 1; | |
console.log(`#${i} creating a ${numStars} star review.`); | |
promises.push(admin.firestore().collection("movies").doc("tt0081748").collection("reviews").add({ | |
name: `Jane Deer #${i}`, | |
stars: numStars, | |
comment: "Meh" | |
})); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export const countReviews = functions.firestore.document("movies/{movieId}/reviews/{reviewId}").onCreate(async (event) => { | |
console.log(`Got a ${event.data.data().stars} star review`); | |
const review = event.data.data(); | |
const movieRef = admin.firestore().collection("movies").doc(event.params.movieId); | |
const movie = (await movieRef.get()).data(); | |
const newNumReviews = movie.numReviews + 1; | |
const newTotalScore = movie.totalReviewScore + review.stars; | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.test_lab_template: &test_lab_template_def | |
stage: test | |
before_script: | |
# Install Google Cloud SDK | |
- wget --quiet --output-document=/tmp/google-cloud-sdk.tar.gz https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz | |
- mkdir -p /opt | |
- tar zxf /tmp/google-cloud-sdk.tar.gz --directory /opt | |
- /opt/google-cloud-sdk/install.sh --quiet | |
- source /opt/google-cloud-sdk/path.bash.inc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
image: openjdk:8-jdk | |
stages: | |
- build | |
- test | |
- package | |
#################################################################################################### | |
# BUILD |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.package_template: &package_template_def | |
before_script: | |
- export VERSION_NAME=`egrep '^[[:blank:]]+versionName[[:blank:]]' app/build.gradle | awk '{print $2}' | sed s/\"//g` | |
- export VERSION_CODE=`egrep '^[[:blank:]]+versionCode[[:blank:]]' app/build.gradle | awk '{print $2}'` | |
- mkdir -p deliverables | |
# Store some information about the build | |
- touch ./deliverables/info.txt | |
- echo "Build date $(date)" >> ./deliverables/info.txt | |
- echo "App version name ${VERSION_NAME}" >> ./deliverables/info.txt |