export default function * renameTournamentSaga () { const firebase = getFirebase() yield takeEvery(RENAME_TOURNAMENT, function * (action) { const { tournamentId, title } = action.payload const auth = yield select(state => pathToJS(state.firebase, 'auth')) if (!auth) { return } const { uid } = auth const db = firebase.database() const ref = db.ref() try { yield ref.update({ [`/tournamentsByOwner/${uid}/${tournamentId}/title`]: title }) } catch (ex) { yield put({ type: RENAME_TOURNAMENT_RESPONSE, payload: { request: action.payload, error: ex }, error: true }) return } yield put({ type: RENAME_TOURNAMENT_RESPONSE, payload: { request: action.payload } }) }) }
export default function * createTournamentSaga () { const firebase = getFirebase() yield takeEvery(CREATE_TOURNAMENT, function * (action) { const { title, tournament, revision } = action.payload const auth = yield select(state => pathToJS(state.firebase, 'auth')) if (!auth) { return } const { uid } = auth const db = firebase.database() const ref = db.ref() const newKey = ref.child('tournaments').push().key const lastModified = firebase.database.ServerValue.TIMESTAMP try { yield ref.update({ [`/tournaments/${newKey}`]: { owner: uid, data: JSON.stringify(tournament), lastModified, revision }, [`/tournamentsByOwner/${uid}/${newKey}`]: { owner: uid, title, lastModified } }) } catch (ex) { yield put({ type: CREATE_TOURNAMENT_RESPONSE, payload: { request: action.payload, error: ex }, error: true }) return } yield put({ type: CREATE_TOURNAMENT_RESPONSE, payload: { request: action.payload } }) }) }