aboutsummaryrefslogtreecommitdiff
path: root/src/actions
diff options
context:
space:
mode:
authorMichael Foiani <mfoiani2019@communityschoolnaples.org>2018-07-26 23:37:41 -0400
committerMichael Foiani <mfoiani2019@communityschoolnaples.org>2018-07-26 23:37:41 -0400
commit84e15b866786854073feefce2392b47a3d84d724 (patch)
tree03bc7098b30d547a021505813ba7f041f996b661 /src/actions
parentfa52586a3fba954d037abdbc534c45e90f86f142 (diff)
Created styling and backend for users to sign up for competitions.
Diffstat (limited to 'src/actions')
-rw-r--r--src/actions/firebase.js62
1 files changed, 60 insertions, 2 deletions
diff --git a/src/actions/firebase.js b/src/actions/firebase.js
index 85ebe20..fe3ddb0 100644
--- a/src/actions/firebase.js
+++ b/src/actions/firebase.js
@@ -21,6 +21,7 @@ export const signIn = (_email, _password) => (dispatch) => {
*/
dispatch(authSuccess(user));
dispatch(getHours())
+ dispatch(pullRegisteredCompetitions());
})
.catch((error) => {
dispatch(authFail(error.code));
@@ -64,8 +65,8 @@ export const authSignOut = () => {
//End Firebase Auth
//Start Firebase Firestore
-export const GET_HOURS = 'GET_HOURS';
-export const UPDATE_HOURS = 'UPDATE_HOURS'
+export const GET_HOURS = 'GET_HOURS';
+export const UPDATE_HOURS = 'UPDATE_HOURS';
export const getHours = () => (dispatch, getState) => {
const currentState = getState().firebase;
@@ -87,4 +88,61 @@ export const updateHours = (hours) => {
}
}
+export const REGISTER_COMP = 'REGISTER_COMP';
+export const PULL_REGISTERED_COMPETITIONS = 'PULL_REGISTERED_COMPETITIONS';
+export const UPDATE_REGISTERED_COMPETITIONS = 'UPDATE_REGISTERED_COMPETITIONS';
+
+export const registerComp = (compName) => (dispatch, getState) => {
+ var docRef = firestore.collection('competitions').doc(compName);
+ var uid = getState().firebase.uid;
+
+ docRef.get().then((doc) => {
+ if(doc.exists) {
+ var uidArr = doc.data().uids;
+
+ uidArr.push(uid);
+
+ docRef.set({
+ uids: uidArr
+ });
+
+ dispatch(pullRegisteredCompetitions());
+ } else {
+ docRef.set({
+ uids : [uid]
+ }).then(() => {
+ dispatch(pullRegisteredCompetitions());
+ });
+ }
+ });
+}
+
+export const pullRegisteredCompetitions = () => (dispatch, getState) =>{
+ var registeredComps = [];
+
+ var docRef = firestore.collection('competitions');
+ docRef.get().then((query) => {
+ query.forEach((doc) => {
+ if(doc.data().uids.includes(getState().firebase.uid)) {
+ registeredComps.push(doc.id);
+ }
+ })
+ });
+
+ dispatch(updateRegisteredCompetitions(registeredComps));
+}
+
+
+
+
+export const updateRegisteredCompetitions = (registeredComps) => {
+ return {
+ type: UPDATE_REGISTERED_COMPETITIONS,
+ payload: registeredComps
+ }
+}
+
+
+
+
//End Firebase Firestore