docbrown/app/javascript/chat/actions/requestActions.js
narender2031 0cfc593150
[deploy] 🚀 Feature: Chat channel request manager (#9305)
* Feature 🚀 : Ability to delete messages in chat channels

- Sending message ID to frontend
- Deleting Message
- Use pusher to delete message realtime

* Minor Bug 🐞: Show message action only for current user

- User can delete or edit their own messages

* Test cases added

* Bug 🐞: Update message id for receiver

Message id was not sent to receiver by pusher

* Refactoring🛠: Message controller refactoring

* Test Cases📝 : Specs for Delete message added

* Feature 🚀 : Ability to edit messages

* Test Cases📝 : Specs for Edit message added

* Merge conflict resolved

* request manager info API

* 👨🏼‍🎨 Design added for requestCenter

* integrate request manager with API

* remove unused argument

* fix request manager card UI

* fix request card UI

* add request manager button

* handle no invitaion UI

* fix badge UI

* add request specs

* add jest specs

* remove the presenter

* fix code climate issues

* fix queries

* fix runbocop issues

* fix PR suggestions

* remove empty lines

Co-authored-by: Sarthak Sharma <7lovesharma7@gmail.com>
2020-07-22 09:12:09 -04:00

94 lines
2.1 KiB
JavaScript

import { request } from '../../utilities/http';
/**
*
* @param {channelId} channelId
* @param {membershipId} membershipId
*/
export async function rejectJoiningRequest(channelId, membershipId) {
const response = await request(
`/chat_channel_memberships/remove_membership`,
{
method: 'POST',
body: {
status: 'pending',
chat_channel_id: channelId,
membership_id: membershipId,
},
credentials: 'same-origin',
},
);
return response.json();
}
/**
* This function is responsible for the Accept joining request for channel
* @param {number} channelId
* @param {number} membershipId
*/
export async function acceptJoiningRequest(channelId, membershipId) {
const response = await request(`/chat_channel_memberships/add_membership`, {
method: 'POST',
body: {
chat_channel_id: channelId,
membership_id: membershipId,
chat_channel_membership: {
user_action: 'accept',
},
},
credentials: 'same-origin',
});
return response.json();
}
export function sendChannelRequest(id, successCb, failureCb) {
request(`/join_chat_channel`, {
method: 'POST',
body: {
chat_channel_membership: {
chat_channel_id: id,
},
},
credentials: 'same-origin',
})
.then((response) => response.json())
.then(successCb)
.catch(failureCb);
}
/**
* This function will get all the request realted to user and channel
*/
export async function getChannelRequestInfo() {
const response = await request(`/channel_request_info/`, {
method: 'GET',
credentials: 'same-origin',
});
return response.json();
}
/**
* This function handle user action on chat channel invitations
*
* @param {number} membershipId
* @param {string} userAction
*/
export async function updateMembership(membershipId, userAction) {
const response = await request(`/chat_channel_memberships/${membershipId}`, {
method: 'PUT',
credentials: 'same-origin',
body: {
chat_channel_membership: {
user_action: userAction,
},
},
});
return response.json();
}