diff --git a/packages/server/modules/core/domain/streams/operations.ts b/packages/server/modules/core/domain/streams/operations.ts index af76ea05b..4c3408e6c 100644 --- a/packages/server/modules/core/domain/streams/operations.ts +++ b/packages/server/modules/core/domain/streams/operations.ts @@ -65,6 +65,16 @@ export type GetStreamCollaborators = ( type?: StreamRoles ) => Promise> +export type LegacyGetStreamCollaborators = (params: { streamId: string }) => Promise< + { + role: string + id: string + name: string + company: string + avatar: string + }[] +> + export type StoreStream = ( input: StreamCreateInput | ProjectCreateInput, options?: Partial<{ diff --git a/packages/server/modules/core/graph/resolvers/streams.ts b/packages/server/modules/core/graph/resolvers/streams.ts index ec8ea5d6c..664b69382 100644 --- a/packages/server/modules/core/graph/resolvers/streams.ts +++ b/packages/server/modules/core/graph/resolvers/streams.ts @@ -1,5 +1,4 @@ import { - getStreamUsers, getActiveUserStreamFavoriteDate, getStreamFavoritesCount, getOwnedFavoritesCount @@ -36,7 +35,8 @@ import { getFavoritedStreamsPageFactory, getStreamCollaboratorsFactory, canUserFavoriteStreamFactory, - setStreamFavoritedFactory + setStreamFavoritedFactory, + legacyGetStreamUsersFactory } from '@/modules/core/repositories/streams' import { createStreamReturnRecordFactory, @@ -182,6 +182,7 @@ const favoriteStream = favoriteStreamFactory({ setStreamFavorited: setStreamFavoritedFactory({ db }), getStream }) +const getStreamUsers = legacyGetStreamUsersFactory({ db }) const getUserStreamsCore = async ( forOtherUser: boolean, diff --git a/packages/server/modules/core/repositories/streams.ts b/packages/server/modules/core/repositories/streams.ts index dfaedc7b7..33db9f0e1 100644 --- a/packages/server/modules/core/repositories/streams.ts +++ b/packages/server/modules/core/repositories/streams.ts @@ -88,7 +88,8 @@ import { GetFavoritedStreamsPage, GetFavoritedStreamsCount, SetStreamFavorited, - CanUserFavoriteStream + CanUserFavoriteStream, + LegacyGetStreamCollaborators } from '@/modules/core/domain/streams/operations' export type { StreamWithOptionalRole, StreamWithCommitId } @@ -680,7 +681,32 @@ export const getStreamCollaboratorsFactory = return items } -// TODO: Inject db +/** + * @deprecated Use getStreamCollaborators instead + */ +export const legacyGetStreamUsersFactory = + (deps: { db: Knex }): LegacyGetStreamCollaborators => + async ({ streamId }) => { + const query = tables + .streamAcl(deps.db) + .columns({ role: 'stream_acl.role' }, 'id', 'name', 'company', 'avatar') + .select() + .where({ resourceId: streamId }) + .rightJoin('users', { 'users.id': 'stream_acl.userId' }) + .select< + { + role: string + id: string + name: string + company: string + avatar: string + }[] + >('stream_acl.role', 'name', 'id', 'company', 'avatar') + .orderBy('stream_acl.role') + + return await query + } + export const getProjectCollaboratorsFactory = (deps: { db: Knex }): GetProjectCollaborators => async ({ projectId }) => { diff --git a/packages/server/modules/core/services/streams.js b/packages/server/modules/core/services/streams.js index 50902c1a6..d32bd44d4 100644 --- a/packages/server/modules/core/services/streams.js +++ b/packages/server/modules/core/services/streams.js @@ -1,4 +1,3 @@ -const { StreamAcl } = require('@/modules/core/dbSchema') const { InvalidArgumentError } = require('@/modules/shared/errors') /** @@ -9,21 +8,6 @@ const { InvalidArgumentError } = require('@/modules/shared/errors') */ module.exports = { - /** - * @returns {Promise<{role: string, id: string, name: string, company: string, avatar: string}[]>} - */ - async getStreamUsers({ streamId }) { - const query = StreamAcl.knex() - .columns({ role: 'stream_acl.role' }, 'id', 'name', 'company', 'avatar') - .select() - .where({ resourceId: streamId }) - .rightJoin('users', { 'users.id': 'stream_acl.userId' }) - .select('stream_acl.role', 'name', 'id', 'company', 'avatar') - .orderBy('stream_acl.role') - - return await query - }, - /** * Get active user stream favorite date (using dataloader) * @param {Object} p diff --git a/packages/server/modules/core/tests/streams.spec.ts b/packages/server/modules/core/tests/streams.spec.ts index 518ffd722..96ce4a41e 100644 --- a/packages/server/modules/core/tests/streams.spec.ts +++ b/packages/server/modules/core/tests/streams.spec.ts @@ -1,6 +1,4 @@ import { expect } from 'chai' -import { getStreamUsers } from '@/modules/core/services/streams' - import { createObject } from '@/modules/core/services/objects' import { beforeEachContext, truncateTables } from '@/test/hooks' @@ -22,6 +20,7 @@ import { deleteStreamFactory, getStreamFactory, grantStreamPermissionsFactory, + legacyGetStreamUsersFactory, markBranchStreamUpdated, markCommitStreamUpdated, revokeStreamPermissionsFactory, @@ -188,6 +187,7 @@ const isStreamCollaborator = isStreamCollaboratorFactory({ getStream }) const grantPermissionsStream = grantStreamPermissionsFactory({ db }) +const getStreamUsers = legacyGetStreamUsersFactory({ db }) describe('Streams @core-streams', () => { const userOne: BasicTestUser = {