Skip to content

Commit dafa7e3

Browse files
authored
feat: memo last visited item to quick jump (#1388)
1 parent 5d3aab9 commit dafa7e3

27 files changed

Lines changed: 982 additions & 34 deletions

File tree

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { Body, Controller, Get, Post, Query } from '@nestjs/common';
2+
import type { IUserLastVisitMapVo, IUserLastVisitVo } from '@teable/openapi';
3+
import {
4+
IGetUserLastVisitRo,
5+
IUpdateUserLastVisitRo,
6+
getUserLastVisitRoSchema,
7+
updateUserLastVisitRoSchema,
8+
} from '@teable/openapi';
9+
import { ClsService } from 'nestjs-cls';
10+
import type { IClsStore } from '../../../types/cls';
11+
import { ZodValidationPipe } from '../../../zod.validation.pipe';
12+
import { LastVisitService } from './last-visit.service';
13+
14+
@Controller('api/user/last-visit')
15+
export class LastVisitController {
16+
constructor(
17+
private readonly lastVisitService: LastVisitService,
18+
private readonly cls: ClsService<IClsStore>
19+
) {}
20+
21+
@Get()
22+
async getUserLastVisit(
23+
@Query(new ZodValidationPipe(getUserLastVisitRoSchema)) params: IGetUserLastVisitRo
24+
): Promise<IUserLastVisitVo | undefined> {
25+
const userId = this.cls.get('user.id');
26+
return this.lastVisitService.getUserLastVisit(userId, params);
27+
}
28+
29+
@Post()
30+
async updateUserLastVisit(
31+
@Body(new ZodValidationPipe(updateUserLastVisitRoSchema))
32+
updateUserLastVisitRo: IUpdateUserLastVisitRo
33+
) {
34+
const userId = this.cls.get('user.id');
35+
return this.lastVisitService.updateUserLastVisit(userId, updateUserLastVisitRo);
36+
}
37+
38+
@Get('/map')
39+
async getUserLastVisitMap(
40+
@Query(new ZodValidationPipe(getUserLastVisitRoSchema)) params: IGetUserLastVisitRo
41+
): Promise<IUserLastVisitMapVo> {
42+
const userId = this.cls.get('user.id');
43+
return this.lastVisitService.getUserLastVisitMap(userId, params);
44+
}
45+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { Module } from '@nestjs/common';
2+
import { LastVisitController } from './last-visit.controller';
3+
import { LastVisitService } from './last-visit.service';
4+
5+
@Module({
6+
controllers: [LastVisitController],
7+
providers: [LastVisitService],
8+
exports: [LastVisitService],
9+
})
10+
export class LastVisitModule {}

0 commit comments

Comments
 (0)