Skip to content

Commit

Permalink
adds firebase and fetches stims on init
Browse files Browse the repository at this point in the history
relates #66
  • Loading branch information
lucymk committed Mar 27, 2018
1 parent 3c549ad commit e32d441
Show file tree
Hide file tree
Showing 9 changed files with 58 additions and 45 deletions.
4 changes: 2 additions & 2 deletions database.rules.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"rules": {
".read": "auth != null",
".write": "auth != null"
".read": true,
".write": true
}
}
50 changes: 25 additions & 25 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
"file-loader": "^1.1.11",
"firebase": "^4.12.0",
"flickity": "^2.0.11",
"lodash": "^4.17.5",
"pg-promise": "^8.2.2",
"postcss-clean": "^1.1.0",
"postcss-cli": "^4.1.1",
Expand Down
20 changes: 12 additions & 8 deletions src/elm/Data/Stim.elm
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,18 @@ defaultStim =

decodeStim : Decoder Stim
decodeStim =
decode Stim
|> required "stimId" string
|> required "bodyPart" decodeBodyPart
|> required "stimName" string
|> required "instructions" string
|> required "videoSrc" (Json.Decode.map stringToMaybe string)
|> required "shared" bool
|> required "userId" string
let
log =
Debug.log ("in decode Stim")
in
decode Stim
|> required "stimId" string
|> required "bodyPart" decodeBodyPart
|> required "stimName" string
|> required "instructions" string
|> required "videoSrc" (Json.Decode.map stringToMaybe string)
|> required "shared" bool
|> required "userId" string


decodeStimList : Value -> Result String (List Stim)
Expand Down
3 changes: 3 additions & 0 deletions src/elm/Ports.elm
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ port receiveInitialData : (Json.Decode.Value -> msg) -> Sub msg
port receiveFirebaseStims : (Json.Decode.Value -> msg) -> Sub msg


port fetchFirebaseStims : () -> Cmd msg


timeSubscription : Model -> Sub Msg
timeSubscription model =
case model.timerStatus of
Expand Down
7 changes: 4 additions & 3 deletions src/elm/State.elm
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,13 @@ initModel =
, selectedStim = defaultStim
, transition = Transit.empty
, blogStims = []
, err = ""
}


init : ( Model, Cmd Msg )
init =
initModel ! [ initDB (), initTimeout ]
initModel ! [ initDB (), initTimeout, fetchFirebaseStims () ]


update : Msg -> Model -> ( Model, Cmd Msg )
Expand Down Expand Up @@ -91,7 +92,7 @@ update msg model =
interval =
stringToFloat time
in
{ model | timeSelected = interval, counter = interval } ! []
{ model | timeSelected = interval, counter = interval } ! []

Tick _ ->
trackCounter model ! []
Expand Down Expand Up @@ -169,7 +170,7 @@ update msg model =
{ model | blogStims = listStims } ! []

ReceiveFirebaseStims (Err err) ->
model ! []
{ model | err = err } ! []

ReceiveChosenAvatar src ->
{ model | avatar = avatarSrcToAvatar src }
Expand Down
1 change: 1 addition & 0 deletions src/elm/Types.elm
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ type alias Model =
, hotspots : Hotspots
, selectedStim : Stim
, blogStims : List Stim
, err : String
}


Expand Down
5 changes: 1 addition & 4 deletions src/js/elm-ports.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,4 @@ app.ports.initDB.subscribe(() => idb.initDB(defaultStims));
app.ports.saveLog.subscribe(idb.saveLog);
app.ports.saveStim.subscribe(idb.saveStim);

app.ports.firebase.subscribe(() => {
console.log('firebase sub', firebase.getFirebaseStims());
return firebase.getFirebaseStims();
});
app.ports.fetchFirebaseStims.subscribe(() => firebase.getFirebaseStims());
12 changes: 9 additions & 3 deletions src/js/firebase.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
var firebase = require('firebase/app');
require('firebase/auth');
require('firebase/database');
var _ = require('lodash');
import app from './elm-init';

import { config } from './firebase-config.js';

var fb = firebase.initializeApp({ config });
var fb = firebase.initializeApp(config()).database();

const getFirebaseStims = () => {
return fb.ref('stimId');
return fb
.ref()
.once('value')
.then(snapshot => _.map(snapshot.val()))
.then(stims => app.ports.receiveFirebaseStims.send(stims))
.catch(err => console.log('Error retreiving stims from Firebase', err));
};

const addFirebaseStim = stim => {
Expand Down

0 comments on commit e32d441

Please sign in to comment.