Refactors types location for backend models
Moves shared type definitions from backend models to the `typings` package. This change centralizes type definitions, improving code maintainability and consistency across the project. It removes duplicated type definitions in backend and uses shared types from `typings` package instead.
This commit is contained in:
parent
af6b5cab28
commit
1c85eaa364
@ -1,4 +1,4 @@
|
||||
import { MeetRecordingInfo } from '@openvidu-meet/typings';
|
||||
import { MeetRecordingField, MeetRecordingInfo } from '@openvidu-meet/typings';
|
||||
import archiver from 'archiver';
|
||||
import { Request, Response } from 'express';
|
||||
import { Readable } from 'stream';
|
||||
@ -10,7 +10,6 @@ import {
|
||||
internalError,
|
||||
rejectRequestFromMeetError
|
||||
} from '../models/error.model.js';
|
||||
import { MeetRecordingField } from '../models/recording-request.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { RecordingService } from '../services/recording.service.js';
|
||||
import { getBaseUrl } from '../utils/url.utils.js';
|
||||
|
||||
@ -2,6 +2,9 @@ import {
|
||||
MeetRoomDeletionPolicyWithMeeting,
|
||||
MeetRoomDeletionPolicyWithRecordings,
|
||||
MeetRoomDeletionSuccessCode,
|
||||
MeetRoomExpandableProperties,
|
||||
MeetRoomField,
|
||||
MeetRoomFilters,
|
||||
MeetRoomOptions
|
||||
} from '@openvidu-meet/typings';
|
||||
import { Request, Response } from 'express';
|
||||
@ -9,7 +12,6 @@ import { container } from '../config/dependency-injector.config.js';
|
||||
import { INTERNAL_CONFIG } from '../config/internal-config.js';
|
||||
import { MeetRoomHelper } from '../helpers/room.helper.js';
|
||||
import { handleError } from '../models/error.model.js';
|
||||
import { MeetRoomExpandableProperties, MeetRoomField, MeetRoomFilters } from '../models/room-request.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { RoomService } from '../services/room.service.js';
|
||||
import { getBaseUrl } from '../utils/url.utils.js';
|
||||
|
||||
@ -1,13 +1,15 @@
|
||||
import { MeetRoom, MeetRoomMemberPermissions, MeetRoomOptions } from '@openvidu-meet/typings';
|
||||
import { INTERNAL_CONFIG } from '../config/internal-config.js';
|
||||
import { MEET_ENV } from '../environment.js';
|
||||
import {
|
||||
MEET_ROOM_EXPANDABLE_FIELDS,
|
||||
MeetRoom,
|
||||
MeetRoomCollapsibleProperties,
|
||||
MeetRoomExpandableProperties,
|
||||
MeetRoomField,
|
||||
MeetRoomMemberPermissions,
|
||||
MeetRoomOptions,
|
||||
SENSITIVE_ROOM_FIELDS_ENTRIES
|
||||
} from '../models/room-request.js';
|
||||
} from '@openvidu-meet/typings';
|
||||
import { INTERNAL_CONFIG } from '../config/internal-config.js';
|
||||
import { MEET_ENV } from '../environment.js';
|
||||
|
||||
export class MeetRoomHelper {
|
||||
private constructor() {
|
||||
@ -234,7 +236,10 @@ export class MeetRoomHelper {
|
||||
|
||||
let filteredRoom: MeetRoom | undefined;
|
||||
|
||||
for (const [permissionKey, fields] of SENSITIVE_ROOM_FIELDS_ENTRIES) {
|
||||
for (const [permissionKey, fields] of SENSITIVE_ROOM_FIELDS_ENTRIES as [
|
||||
keyof MeetRoomMemberPermissions,
|
||||
(keyof MeetRoom)[]
|
||||
][]) {
|
||||
if (!fields?.length) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -1,6 +1,10 @@
|
||||
import { MeetRecordingLayout, MeetRecordingStatus } from '@openvidu-meet/typings';
|
||||
import {
|
||||
MEET_RECORDING_FIELDS,
|
||||
MeetRecordingField,
|
||||
MeetRecordingLayout,
|
||||
MeetRecordingStatus
|
||||
} from '@openvidu-meet/typings';
|
||||
import { z } from 'zod';
|
||||
import { MEET_RECORDING_FIELDS, MeetRecordingField } from '../recording-request.js';
|
||||
import { encodingValidator, nonEmptySanitizedRoomId } from './room.schema.js';
|
||||
|
||||
// Shared fields validation schema for Recording entity
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
import {
|
||||
MEET_ROOM_EXPANDABLE_FIELDS,
|
||||
MEET_ROOM_FIELDS,
|
||||
MeetAppearanceConfig,
|
||||
MeetChatConfig,
|
||||
MeetE2EEConfig,
|
||||
@ -14,6 +16,8 @@ import {
|
||||
MeetRoomConfig,
|
||||
MeetRoomDeletionPolicyWithMeeting,
|
||||
MeetRoomDeletionPolicyWithRecordings,
|
||||
MeetRoomExpandableProperties,
|
||||
MeetRoomField,
|
||||
MeetRoomOptions,
|
||||
MeetRoomRolesConfig,
|
||||
MeetRoomStatus,
|
||||
@ -25,12 +29,6 @@ import ms from 'ms';
|
||||
import { z } from 'zod';
|
||||
import { INTERNAL_CONFIG } from '../../config/internal-config.js';
|
||||
import { MeetRoomHelper } from '../../helpers/room.helper.js';
|
||||
import {
|
||||
MEET_ROOM_EXPANDABLE_FIELDS,
|
||||
MEET_ROOM_FIELDS,
|
||||
MeetRoomExpandableProperties,
|
||||
MeetRoomField
|
||||
} from '../room-request.js';
|
||||
import { PartialMeetPermissionsSchema } from './room-member.schema.js';
|
||||
|
||||
export const nonEmptySanitizedRoomId = (fieldName: string) =>
|
||||
|
||||
@ -1,8 +1,12 @@
|
||||
import { MeetRecordingInfo, MeetRecordingStatus } from '@openvidu-meet/typings';
|
||||
import {
|
||||
MeetRecordingField,
|
||||
MeetRecordingFilters,
|
||||
MeetRecordingInfo,
|
||||
MeetRecordingStatus
|
||||
} from '@openvidu-meet/typings';
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { uid as secureUid } from 'uid/secure';
|
||||
import { MeetRecordingDocument, MeetRecordingModel } from '../models/mongoose-schemas/recording.schema.js';
|
||||
import { MeetRecordingField, MeetRecordingFilters } from '../models/recording-request.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { BaseRepository } from './base.repository.js';
|
||||
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
import { MeetRoom, MeetRoomStatus } from '@openvidu-meet/typings';
|
||||
import { MeetRoom, MeetRoomField, MeetRoomFilters, MeetRoomStatus } from '@openvidu-meet/typings';
|
||||
import { inject, injectable } from 'inversify';
|
||||
import { MeetRoomDocument, MeetRoomModel } from '../models/mongoose-schemas/room.schema.js';
|
||||
import { MeetRoomField, MeetRoomFilters } from '../models/room-request.js';
|
||||
import { LoggerService } from '../services/logger.service.js';
|
||||
import { getBasePath } from '../utils/html-injection.utils.js';
|
||||
import { getBaseUrl } from '../utils/url.utils.js';
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
import {
|
||||
MeetRecordingEncodingOptions,
|
||||
MeetRecordingEncodingPreset,
|
||||
MeetRecordingField,
|
||||
MeetRecordingFilters,
|
||||
MeetRecordingInfo,
|
||||
MeetRecordingLayout,
|
||||
MeetRecordingStatus,
|
||||
@ -34,7 +36,6 @@ import {
|
||||
isErrorRecordingNotFound,
|
||||
OpenViduMeetError
|
||||
} from '../models/error.model.js';
|
||||
import { MeetRecordingField, MeetRecordingFilters } from '../models/recording-request.js';
|
||||
import { RecordingRepository } from '../repositories/recording.repository.js';
|
||||
import { DistributedEventService } from './distributed-event.service.js';
|
||||
import { FrontendEventService } from './frontend-event.service.js';
|
||||
|
||||
@ -8,8 +8,10 @@ import {
|
||||
MeetRoomDeletionPolicyWithMeeting,
|
||||
MeetRoomDeletionPolicyWithRecordings,
|
||||
MeetRoomDeletionSuccessCode,
|
||||
MeetRoomFilters,
|
||||
MeetRoomMemberPermissions,
|
||||
MeetRoomOptions,
|
||||
MeetRoomResponseOptions,
|
||||
MeetRoomRoles,
|
||||
MeetRoomRolesConfig,
|
||||
MeetRoomStatus,
|
||||
@ -34,10 +36,7 @@ import {
|
||||
internalError,
|
||||
OpenViduMeetError
|
||||
} from '../models/error.model.js';
|
||||
import {
|
||||
MeetRoomFilters,
|
||||
MeetRoomResponseOptions
|
||||
} from '../models/room-request.js';
|
||||
|
||||
import { RoomMemberRepository } from '../repositories/room-member.repository.js';
|
||||
import { RoomRepository } from '../repositories/room.repository.js';
|
||||
import { FrontendEventService } from './frontend-event.service.js';
|
||||
|
||||
@ -299,7 +299,7 @@ export class MeetingLobbyService {
|
||||
const { recordings } = await this.recordingService.listRecordings({
|
||||
maxItems: 1,
|
||||
roomId,
|
||||
fields: 'recordingId'
|
||||
fields: ['recordingId']
|
||||
});
|
||||
|
||||
const hasRecordings = recordings.length > 0;
|
||||
|
||||
@ -5,9 +5,11 @@ export * from './event.model.js';
|
||||
export * from './global-config.js';
|
||||
export * from './permissions/livekit-permissions.js';
|
||||
export * from './permissions/meet-permissions.js';
|
||||
export * from './recording-response.js';
|
||||
export * from './recording.model.js';
|
||||
export * from './room-config.js';
|
||||
export * from './room-member.js';
|
||||
export * from './room-response.js';
|
||||
export * from './room.js';
|
||||
export * from './sort-pagination.js';
|
||||
export * from './user.js';
|
||||
@ -18,3 +20,4 @@ export * from './webcomponent/command.model.js';
|
||||
export * from './webcomponent/event.model.js';
|
||||
export * from './webcomponent/message.type.js';
|
||||
export * from './webcomponent/properties.model.js';
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import { MeetRecordingInfo, MeetRecordingStatus, SortAndPagination } from '@openvidu-meet/typings';
|
||||
import { MeetRecordingInfo, MeetRecordingStatus } from './recording.model';
|
||||
import { SortAndPagination } from './sort-pagination';
|
||||
|
||||
/**
|
||||
* List of all valid fields that can be selected from a MeetRecordingInfo.
|
||||
@ -1,4 +1,6 @@
|
||||
import { MeetRoom, MeetRoomMemberPermissions, MeetRoomStatus, SortAndPagination } from '@openvidu-meet/typings';
|
||||
import { MeetRoomMemberPermissions } from './permissions/meet-permissions';
|
||||
import { MeetRoom, MeetRoomStatus } from './room';
|
||||
import { SortAndPagination } from './sort-pagination';
|
||||
|
||||
/**
|
||||
* List of all valid fields that can be selected from a MeetRoom.
|
||||
@ -49,10 +51,9 @@ export const SENSITIVE_ROOM_FIELDS_BY_PERMISSION: Partial<Record<keyof MeetRoomM
|
||||
canShareAccessLinks: ['anonymous']
|
||||
};
|
||||
|
||||
export const SENSITIVE_ROOM_FIELDS_ENTRIES = Object.entries(SENSITIVE_ROOM_FIELDS_BY_PERMISSION) as ReadonlyArray<[
|
||||
keyof MeetRoomMemberPermissions,
|
||||
MeetRoomField[]
|
||||
]>;
|
||||
export const SENSITIVE_ROOM_FIELDS_ENTRIES = Object.entries(SENSITIVE_ROOM_FIELDS_BY_PERMISSION) as ReadonlyArray<
|
||||
[keyof MeetRoomMemberPermissions, MeetRoomField[]]
|
||||
>;
|
||||
|
||||
/**
|
||||
* Filters for querying rooms with pagination, sorting, field selection, and expand support.
|
||||
@ -8,7 +8,7 @@
|
||||
"emitDecoratorMetadata": true,
|
||||
"experimentalDecorators": true,
|
||||
"typeRoots": ["node_modules/@types"],
|
||||
"lib": ["es2016", "dom"],
|
||||
"lib": ["es2017", "dom"],
|
||||
"outDir": "dist",
|
||||
"rootDir": "src",
|
||||
"strict": true,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user