From 7e4723a0395f716d8ffab575db48ebdd5212ccd5 Mon Sep 17 00:00:00 2001 From: mcarman Date: Tue, 7 Dec 2021 13:23:44 +0000 Subject: [PATCH] actions --- src/actions/actionTypes.js | 10 ++++++++++ src/actions/courseActions.js | 33 +++++++++++++++++++++++++++++++++ src/actions/userActions.js | 31 +++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 src/actions/actionTypes.js create mode 100644 src/actions/courseActions.js create mode 100644 src/actions/userActions.js diff --git a/src/actions/actionTypes.js b/src/actions/actionTypes.js new file mode 100644 index 0000000..6741bef --- /dev/null +++ b/src/actions/actionTypes.js @@ -0,0 +1,10 @@ +export default { + CREATE_COURSE: "CREATE_COURSE", + UPDATE_COURSE: "UPDATE_COURSE", + DELETE_COURSE: "DELETE_COURSE", + LOAD_COURSES: "LOAD_COURSES", + CREATE_USER: "CREATE_USER", + UPDATE_USER: "UPDATE_USER", + DELETE_USER: "DELETE_USER", + LOAD_USERS: "LOAD_USERS", +}; diff --git a/src/actions/courseActions.js b/src/actions/courseActions.js new file mode 100644 index 0000000..3ab4f1b --- /dev/null +++ b/src/actions/courseActions.js @@ -0,0 +1,33 @@ +import dispatcher from "../appDispatcher"; +import * as courseApi from "../api/courseApi"; +import actionTypes from "./actionTypes"; + +export function saveCourse(course) { + return courseApi.saveCourse(course).then((savedCourse) => { + // Hey dispatcher, go tell all the stores that a course was just created. + dispatcher.dispatch({ + actionType: course.id + ? actionTypes.UPDATE_COURSE + : actionTypes.CREATE_COURSE, + course: savedCourse, + }); + }); +} + +export function loadCourses() { + return courseApi.getCourses().then((courses) => { + dispatcher.dispatch({ + actionType: actionTypes.LOAD_COURSES, + courses: courses, + }); + }); +} + +export function deleteCourse(id) { + return courseApi.deleteCourse(id).then(() => { + dispatcher.dispatch({ + actionType: actionTypes.DELETE_COURSE, + id: id, + }); + }); +} diff --git a/src/actions/userActions.js b/src/actions/userActions.js new file mode 100644 index 0000000..e6d3adb --- /dev/null +++ b/src/actions/userActions.js @@ -0,0 +1,31 @@ +import dispatcher from "../appDispatcher"; +import * as userApi from "../api/userApi"; +import actionTypes from "./actionTypes"; + +export function saveUser(user) { + return userApi.saveUser(user).then((savedUser) => { + // Hey dispatcher, go tell all the stores that a user was just created. + dispatcher.dispatch({ + actionType: user.id ? actionTypes.UPDATE_USER : actionTypes.CREATE_USER, + user: savedUser, + }); + }); +} + +export function loadUsers() { + return userApi.getUsers().then((users) => { + dispatcher.dispatch({ + actionType: actionTypes.LOAD_USERS, + users: users, + }); + }); +} + +export function deleteUser(id) { + return userApi.deleteUser(id).then(() => { + dispatcher.dispatch({ + actionType: actionTypes.DELETE_USER, + id: id, + }); + }); +}