Merge pull request #3253 from specklesystems/fabians/core-ioc-41
chore(server): core IoC #41 - legacyGetStreamUsersFactory
This commit is contained in:
@@ -65,6 +65,16 @@ export type GetStreamCollaborators = (
|
||||
type?: StreamRoles
|
||||
) => Promise<Array<LimitedUserWithStreamRole>>
|
||||
|
||||
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<{
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 }) => {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user