chore(activitystream): getActivity refactor
This commit is contained in:
Родитель
b03a8c38bd
Коммит
c3c8b8b10f
|
@ -0,0 +1,8 @@
|
|||
import { StreamScopeActivity } from '@/modules/activitystream/helpers/types'
|
||||
|
||||
export type GetActivity = (
|
||||
streamId: string,
|
||||
start: Date,
|
||||
end: Date,
|
||||
filteredUser: string | null
|
||||
) => Promise<StreamScopeActivity[]>
|
|
@ -1,21 +1,33 @@
|
|||
import knex from '@/db/knex'
|
||||
import { StreamScopeActivity } from '@/modules/activitystream/helpers/types'
|
||||
import {
|
||||
StreamActivityRecord,
|
||||
StreamScopeActivity
|
||||
} from '@/modules/activitystream/helpers/types'
|
||||
import { StreamActivity } from '@/modules/core/dbSchema'
|
||||
import { Roles } from '@/modules/core/helpers/mainConstants'
|
||||
import { Knex } from 'knex'
|
||||
|
||||
export const getActivity = async (
|
||||
streamId: string,
|
||||
start: Date,
|
||||
end: Date,
|
||||
filteredUser: string | null = null
|
||||
): Promise<StreamScopeActivity[]> => {
|
||||
let query = StreamActivity.knex<StreamScopeActivity[]>()
|
||||
.where(StreamActivity.col.streamId, '=', streamId)
|
||||
.whereBetween(StreamActivity.col.time, [start, end])
|
||||
if (filteredUser) query = query.andWhereNot(StreamActivity.col.userId, filteredUser)
|
||||
return await query
|
||||
const tables = {
|
||||
streamActivity: <T extends object = StreamActivityRecord>(db: Knex) =>
|
||||
db<T>(StreamActivity.name)
|
||||
}
|
||||
|
||||
export const getActivityFactory =
|
||||
({ db }: { db: Knex }) =>
|
||||
async (
|
||||
streamId: string,
|
||||
start: Date,
|
||||
end: Date,
|
||||
filteredUser: string | null = null
|
||||
): Promise<StreamScopeActivity[]> => {
|
||||
let query = tables
|
||||
.streamActivity<StreamScopeActivity>(db)
|
||||
.where(StreamActivity.col.streamId, '=', streamId)
|
||||
.whereBetween(StreamActivity.col.time, [start, end])
|
||||
if (filteredUser) query = query.andWhereNot(StreamActivity.col.userId, filteredUser)
|
||||
return await query
|
||||
}
|
||||
|
||||
export const getActiveUserStreams = async (
|
||||
start: Date,
|
||||
end: Date
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import {
|
||||
getActivity,
|
||||
getActivityFactory,
|
||||
getActiveUserStreams,
|
||||
UserStreams
|
||||
} from '@/modules/activitystream/repositories'
|
||||
|
@ -11,6 +11,7 @@ import {
|
|||
import { StreamRecord, UserRecord } from '@/modules/core/helpers/types'
|
||||
import { getUser } from '@/modules/core/repositories/users'
|
||||
import { getStream } from '@/modules/core/services/streams'
|
||||
import { db } from '@/db/knex'
|
||||
|
||||
export type StreamActivitySummary = {
|
||||
stream: StreamRecord | null
|
||||
|
@ -33,7 +34,7 @@ export const createActivitySummary = async (
|
|||
streamIds.map(async (streamId) => {
|
||||
return {
|
||||
stream: (await getStream({ streamId, userId })) ?? null,
|
||||
activity: await getActivity(streamId, start, end, null) //userId is null for now, to not filter out any activity
|
||||
activity: await getActivityFactory({ db })(streamId, start, end, null) //userId is null for now, to not filter out any activity
|
||||
}
|
||||
})
|
||||
)
|
||||
|
|
Загрузка…
Ссылка в новой задаче