mirror of https://github.com/mx-space/core
feat: add recent notification api
Signed-off-by: Innei <i@innei.in>
This commit is contained in:
parent
14e04953a8
commit
1111b96013
|
@ -13,9 +13,12 @@
|
|||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
"material-icon-theme.activeIconPack": "nest",
|
||||
"cSpell.words": ["qaqdmin"],
|
||||
"cSpell.words": [
|
||||
"qaqdmin"
|
||||
],
|
||||
"typescript.tsdk": "node_modules/typescript/lib",
|
||||
"yaml.schemas": {
|
||||
"https://json.schemastore.org/github-workflow.json": "file:///Users/xiaoxun/github/innei-repo/mx-space/mx-server/.github/workflows/build.yml"
|
||||
}
|
||||
}
|
||||
},
|
||||
"typescript.preferences.preferTypeOnlyAutoImports": false
|
||||
}
|
|
@ -14,6 +14,7 @@ import { Activity } from './activity.constant'
|
|||
import { ActivityService } from './activity.service'
|
||||
import {
|
||||
ActivityDeleteDto,
|
||||
ActivityNotificationDto,
|
||||
ActivityQueryDto,
|
||||
ActivityRangeDto,
|
||||
ActivityTypeParamsDto,
|
||||
|
@ -197,4 +198,47 @@ export class ActivityController {
|
|||
...recent,
|
||||
}
|
||||
}
|
||||
|
||||
@HTTPDecorators.SkipLogging
|
||||
@Get('/recent/notification')
|
||||
async getNotification(@Query() query: ActivityNotificationDto) {
|
||||
const activity = await this.getRecentActivities()
|
||||
|
||||
const { from } = query
|
||||
|
||||
const fromDate = new Date(from)
|
||||
const now = new Date()
|
||||
|
||||
if (fromDate > now) {
|
||||
return []
|
||||
}
|
||||
|
||||
const { post, note } = activity
|
||||
|
||||
const postList = post
|
||||
.filter((item) => {
|
||||
return new Date(item.created) > fromDate
|
||||
})
|
||||
.map((item) => {
|
||||
return {
|
||||
title: item.title,
|
||||
type: CollectionRefTypes.Post,
|
||||
id: item.id,
|
||||
slug: item.slug,
|
||||
}
|
||||
})
|
||||
const noteList = note
|
||||
.filter((item) => {
|
||||
return new Date(item.created) > fromDate
|
||||
})
|
||||
.map((item) => {
|
||||
return {
|
||||
title: item.title,
|
||||
type: CollectionRefTypes.Note,
|
||||
id: item.nid,
|
||||
}
|
||||
})
|
||||
|
||||
return [...postList, ...noteList]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,3 +38,9 @@ export class ActivityRangeDto {
|
|||
@Type(() => Number)
|
||||
end: number
|
||||
}
|
||||
|
||||
export class ActivityNotificationDto {
|
||||
@IsInt()
|
||||
@Type(() => Number)
|
||||
from: number
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue