summaryrefslogtreecommitdiff
path: root/app/client/auth/auth.actions.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/client/auth/auth.actions.js')
-rw-r--r--app/client/auth/auth.actions.js86
1 files changed, 86 insertions, 0 deletions
diff --git a/app/client/auth/auth.actions.js b/app/client/auth/auth.actions.js
new file mode 100644
index 0000000..c4d9b52
--- /dev/null
+++ b/app/client/auth/auth.actions.js
@@ -0,0 +1,86 @@
+import types from '../types'
+import { put } from '../api/crud.fetch'
+
+export const setToken = (data) => {
+ return { type: types.auth.set_token, data }
+}
+export const setReturnTo = (data) => {
+ return { type: types.auth.set_return_to, data }
+}
+export const setError = (data) => {
+ return { type: types.auth.set_error, data }
+}
+export const setCurrentUser = (data) => {
+ return { type: types.auth.set_current_user, data }
+}
+export function logout() {
+ return { type: types.auth.logout_user }
+}
+export function initialized() {
+ return { type: types.auth.initialized }
+}
+export function loading() {
+ return { type: types.auth.loading }
+}
+
+export function InvalidCredentialsException(message) {
+ this.message = message
+ this.name = 'InvalidCredentialsException'
+}
+
+const api = {
+ login: '/api/login',
+ logout: '/api/logout',
+ signup: '/api/signup',
+ checkin: '/api/checkin',
+}
+
+export function login(username, password) {
+ return (dispatch) => {
+ dispatch(loading())
+ fetch(api.login, put({
+ username,
+ password
+ }))
+ .then(req => req.json())
+ .then(data => {
+ console.log(data)
+ dispatch(setCurrentUser(data.user))
+ })
+ .catch(error => {
+ console.error(error)
+ dispatch(setError(true))
+ })
+ }
+}
+
+export function signup(data) {
+ return (dispatch) => {
+ dispatch(loading())
+ fetch(api.signup, put(data))
+ .then(req => req.json())
+ .then(data => {
+ console.log(data)
+ dispatch(setCurrentUser(data.user))
+ })
+ .catch(error => {
+ console.error(error)
+ dispatch(initialized())
+ })
+ }
+}
+
+export function checkin() {
+ return (dispatch) => {
+ dispatch(loading())
+ fetch(api.checkin, put({}))
+ .then(req => req.json())
+ .then(data => {
+ dispatch(setCurrentUser(data.user))
+ })
+ .catch(error => {
+ console.error(error)
+ dispatch(initialized())
+ })
+ }
+}