• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

safe-global / safe-client-gateway / 21747150924

06 Feb 2026 10:23AM UTC coverage: 87.207% (-2.2%) from 89.395%
21747150924

Pull #2909

github

PooyaRaki
fix: fix lint errors
Pull Request #2909: Release 1.100.0

1016 of 1303 branches covered (77.97%)

Branch coverage included in aggregate %.

137 of 167 new or added lines in 15 files covered. (82.04%)

252 existing lines in 34 files now uncovered.

4519 of 5044 relevant lines covered (89.59%)

1788.12 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

75.0
/src/modules/csv-export/v1/csv-export.controller.ts
1
import {
94✔
2
  Body,
3
  Controller,
4
  Get,
5
  Param,
6
  ParseUUIDPipe,
7
  Post,
8
} from '@nestjs/common';
9
import {
94✔
10
  ApiAcceptedResponse,
11
  ApiBody,
12
  ApiNotFoundResponse,
13
  ApiOkResponse,
14
  ApiTags,
15
} from '@nestjs/swagger';
16
import { ValidationPipe } from '@/validation/pipes/validation.pipe';
94✔
17
import { AddressSchema } from '@/validation/entities/schemas/address.schema';
94✔
18
import { NumericStringSchema } from '@/validation/entities/schemas/numeric-string.schema';
94✔
19
import { CsvExportService } from '@/modules/csv-export/v1/csv-export.service';
94✔
20
import {
94✔
21
  JobStatusDto,
22
  JobStatusErrorDto,
23
  JobStatusResponseDto,
24
} from '@/routes/jobs/entities/job-status.dto';
25
import { TransactionExportDtoSchema } from '@/modules/csv-export/v1/entities/schemas/transaction-export.dto.schema';
94✔
26
import { TransactionExportDto } from '@/modules/csv-export/v1/entities/transaction-export-request';
94✔
27
import type { Address } from 'viem';
28

29
@ApiTags('export')
30
@Controller({
31
  path: 'export',
32
  version: '1',
33
})
34
export class CsvExportController {
94✔
UNCOV
35
  constructor(private readonly csvExportService: CsvExportService) {}
×
36

37
  @ApiAcceptedResponse({ type: JobStatusDto })
38
  @ApiBody({
39
    description: 'Transaction export request',
40
    type: TransactionExportDto,
41
    required: false,
42
  })
43
  @Post('chains/:chainId/:safeAddress')
44
  async launchExport(
94✔
45
    @Param('chainId', new ValidationPipe(NumericStringSchema)) chainId: string,
46
    @Param('safeAddress', new ValidationPipe(AddressSchema))
47
    safeAddress: Address,
48
    @Body(new ValidationPipe(TransactionExportDtoSchema))
49
    exportDto?: TransactionExportDto,
50
  ): Promise<JobStatusDto> {
51
    const args = {
×
52
      chainId,
53
      safeAddress,
54
      ...exportDto,
55
    };
56
    return this.csvExportService.registerExportJob(args);
×
57
  }
58

59
  @ApiOkResponse({
60
    description: 'CSV export status retrieved successfully',
61
    type: JobStatusDto,
62
  })
63
  @ApiNotFoundResponse({
64
    description: 'CSV export not found',
65
    type: JobStatusErrorDto,
66
  })
67
  @Get('/:jobId/status')
68
  async getExportStatus(
94✔
69
    @Param('jobId', ParseUUIDPipe) jobId: string,
70
  ): Promise<JobStatusResponseDto> {
71
    return this.csvExportService.getExportJobStatus(jobId);
×
72
  }
73
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc