import $ from 'cafy';
import { publishMainStream } from '../../../../services/stream';
import define from '../../define';
import { Users, UserProfiles } from '../../../../models';
export const meta = {
tags: ['room'],
requireCredential: true as const,
params: {
room: {
validator: $.obj({
furnitures: $.arr($.obj({
id: $.str,
type: $.str,
position: $.obj({
x: $.num,
y: $.num,
z: $.num,
}),
rotation: $.obj({
props: $.optional.nullable.obj(),
})),
roomType: $.str,
carpetColor: $.str
})
},
};
export default define(meta, async (ps, user) => {
await UserProfiles.update(user.id, {
room: ps.room as any
});
const iObj = await Users.pack(user.id, user, {
detail: true,
includeSecrets: true
// Publish meUpdated event
publishMainStream(user.id, 'meUpdated', iObj);
return iObj;