application/redux/actions/assignment-comment-actions.js
- import BaseService from './../../services/base-service';
- import {parseSrn} from './../../util/strings';
- import Immutable from 'immutable';
-
- class AssignmentCommentService extends BaseService {
-
- fetch(id, opts = {}) {
- return this.get('/v3/assignment-comment/' + id, opts);
- }
-
- create(id, data) {
- return this.post('/v3/assignment-comment/' + id, data);
- }
- }
-
- const service = new AssignmentCommentService;
-
- /**
- * Action types
- */
- export const ASSIGNMENT_COMMENTS_REQUEST = 'ASSIGNMENT_COMMENTS_REQUEST';
- export const ASSIGNMENT_COMMENTS_RECEIVE = 'ASSIGNMENT_COMMENTS_RECEIVE';
- export const ASSIGNMENT_COMMENTS_SELECTED = 'ASSIGNMENT_COMMENTS_SELECTED';
- export const ASSIGNMENT_COMMENTS_INVALIDATE = 'ASSIGNMENT_COMMENTS_INVALIDATE';
-
- /**
- * Action creators
- */
- export function assignmentCommentsRequest(params = {}) {
- return {
- type: ASSIGNMENT_COMMENTS_REQUEST,
- payload: {
- params: params
- }
- };
- }
-
- export function assignmentCommentsReceive(items) {
-
- return {
- type: ASSIGNMENT_COMMENTS_RECEIVE,
- payload: {
- comments: items ? items : []
- }
- };
- }
-
- export function assignmentCommentsInvalidate() {
- return {
- type: ASSIGNMENT_COMMENTS_INVALIDATE,
- payload: {
- }
- };
- }
-
- export function assignmentCommentsFetch(id, params = {}) {
- return function(dispatch, getState) {
- dispatch(assignmentCommentsRequest(params));
-
- return service.fetch(id, params)
- .then(response => {
- return dispatch(assignmentCommentsReceive(response.get('items')));
- });
- };
- }
-
- export function assignmentCommentsReceiveWebSocket(comments = {}) {
- return function(dispatch, getState) {
- return Promise.all([
- dispatch(assignmentCommentsReceive(comments.get('items')))
- ]);
- };
- }
-
- export function assignmentCommentsCreate(id, comment = {}) {
- return function(dispatch, getState) {
- return service.create(id, comment)
- .then(response => {
- return dispatch(assignmentCommentsReceive(response.get('items')));
- });
- }
- }