Skip to content

Commit 4817c0e

Browse files
committed
feat: adding timezone id automatically before saves in database
1 parent d317c64 commit 4817c0e

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

backend/src/modules/time-trackers/__tests__/time-trackers.service.spec.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,16 @@ describe('TimeTrackersService', () => {
3939

4040
it('should create timetrackers correctly', async () => {
4141
const timeTracker = new TimeTrackersStub();
42+
const timeZoneId = Intl.DateTimeFormat().resolvedOptions().timeZone;
4243
timeTrackersRepository.create.mockResolvedValue(timeTracker);
4344
timeTrackersRepository.verifyTimeConflict.mockResolvedValue([]);
4445
const result = await service.create(timeTracker as CreateTimeTrackerDto);
4546

4647
expect(result).toEqual(timeTracker);
47-
expect(timeTrackersRepository.create).toHaveBeenCalledWith(
48-
timeTracker as CreateTimeTrackerDto,
49-
);
48+
expect(timeTrackersRepository.create).toHaveBeenCalledWith({
49+
...(timeTracker as CreateTimeTrackerDto),
50+
timezone_id: timeZoneId,
51+
});
5052
expect(timeTrackersRepository.verifyTimeConflict).toHaveBeenCalledWith(
5153
timeTracker.end_date,
5254
timeTracker.start_date,

backend/src/modules/time-trackers/dtos/create-time-tracker.dto.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Type } from 'class-transformer';
1+
import { Exclude, Type } from 'class-transformer';
22
import { IsDate, IsNotEmpty, IsOptional, IsString } from 'class-validator';
33

44
export class CreateTimeTrackerDto {
@@ -12,8 +12,7 @@ export class CreateTimeTrackerDto {
1212
@Type(() => Date)
1313
end_date: Date;
1414

15-
@IsString()
16-
@IsNotEmpty()
15+
@Exclude()
1716
timezone_id: string;
1817

1918
@IsOptional()

backend/src/modules/time-trackers/time-trackers.service.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,12 @@ export class TimeTrackersService {
3232
);
3333
}
3434

35-
return await this.timeTrackersRepository.create(createTimeTrackerDto);
35+
const timeZoneId = Intl.DateTimeFormat().resolvedOptions().timeZone;
36+
37+
return await this.timeTrackersRepository.create({
38+
...createTimeTrackerDto,
39+
timezone_id: timeZoneId,
40+
});
3641
}
3742

3843
async findAll() {

0 commit comments

Comments
 (0)