feat(admin): update delete message logic with call

We need to post deleteMessage socket event to user and not just in database.
Reuse message service
pull/90/head
moonrailgun 2 years ago
parent cbb436cfbe
commit 0cd4268a65

@ -8,6 +8,7 @@ import {
TextField,
SearchInput,
useTranslate,
BulkDeleteButton,
} from 'react-admin';
import { UserField } from '../components/UserField';
@ -25,7 +26,10 @@ export const MessageList: React.FC = () => {
/>,
]}
>
<Datagrid rowClick="show">
<Datagrid
rowClick="show"
bulkActionButtons={<BulkDeleteButton mutationMode="optimistic" />}
>
<TextField source="id" sortable={true} sortByOrder="DESC" />
<TextField source="content" />
<UserField source="author" />

@ -1,4 +1,4 @@
import { TcBroker } from 'tailchat-server-sdk';
import { TcBroker, SYSTEM_USERID } from 'tailchat-server-sdk';
import brokerConfig from '../../../moleculer.config';
const transporter = process.env.TRANSPORTER;
@ -12,3 +12,11 @@ export const broker = new TcBroker({
broker.start().then(() => {
console.log('Linked to Tailchat network, TRANSPORTER: ', transporter);
});
export function call<T>(actionName: string, params: any): Promise<T> {
return broker.call(actionName, params, {
meta: {
userId: SYSTEM_USERID,
},
});
}

@ -1,6 +1,7 @@
import { Router } from 'express';
import raExpressMongoose from 'express-mongoose-ra-json-server';
import jwt from 'jsonwebtoken';
import { call } from '../broker';
import { adminAuth, auth, authSecret } from '../middleware/auth';
import { networkRouter } from './network';
@ -46,6 +47,19 @@ router.use(
q: ['nickname', 'email'],
})
);
router.delete('/messages/:id', auth(), async (req, res) => {
try {
const messageId = req.params.id;
await call('chat.message.deleteMessage', {
messageId,
});
res.json({ id: messageId });
} catch (err) {
console.error(err);
res.status(500).json({ message: err.message });
}
});
router.use(
'/messages',
auth(),

@ -16,6 +16,7 @@ import {
GroupPanelType,
NoPermissionError,
PERMISSION,
SYSTEM_USERID,
TcContext,
} from 'tailchat-server-sdk';
import { User } from '../user/user';
@ -275,6 +276,10 @@ export class Group extends TimeStamps implements Base {
throw new Error('Not Found Group');
}
if (userId === SYSTEM_USERID) {
return allPermission;
}
const member = group.members.find(
(member) => String(member.userId) === userId
);

Loading…
Cancel
Save