Skip to content

Commit 6130694

Browse files
authored
chore: Make s3 buckets configurable via env (#685)
* chore: Make s3 buckets configurable via env * chore: Add some spacing * fix: Tests
1 parent bdc108b commit 6130694

15 files changed

+49
-19
lines changed

apps/api/src/bank-transactions-file/bank-transactions-file.module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { PersonService } from '../person/person.service'
66
import { DonationsService } from '../donations/donations.service'
77
import { VaultService } from '../vault/vault.service'
88
import { CampaignService } from '../campaign/campaign.service'
9-
import { ConfigService } from '@nestjs/config'
9+
import { ConfigModule, ConfigService } from '@nestjs/config'
1010
import { StripeModule } from '@golevelup/nestjs-stripe'
1111
import { StripeConfigFactory } from '../donations/helpers/stripe-config-factory'
1212
import { ExportService } from '../export/export.service'
@@ -23,6 +23,7 @@ import { PrismaModule } from '../prisma/prisma.module'
2323
NotificationModule,
2424
MarketingNotificationsModule,
2525
PrismaModule,
26+
ConfigModule
2627
],
2728
controllers: [BankTransactionsFileController],
2829
providers: [

apps/api/src/bank-transactions-file/bank-transactions-file.service.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@ import { PrismaService } from '../prisma/prisma.service'
33
import { S3Service } from '../s3/s3.service'
44
import { BankTransactionsFileService } from './bank-transactions-file.service'
55
import { MarketingNotificationsModule } from '../notifications/notifications.module'
6+
import { ConfigModule } from '@nestjs/config'
67

78
describe('BankTransactionsFileService', () => {
89
let service: BankTransactionsFileService
910

1011
beforeEach(async () => {
1112
const module: TestingModule = await Test.createTestingModule({
12-
imports: [MarketingNotificationsModule],
13+
imports: [MarketingNotificationsModule, ConfigModule],
1314
providers: [BankTransactionsFileService, PrismaService, S3Service],
1415
}).compile()
1516

apps/api/src/bank-transactions-file/bank-transactions-file.service.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@ import { Readable } from 'stream'
44
import { PrismaService } from '../prisma/prisma.service'
55
import { S3Service } from '../s3/s3.service'
66
import { CreateBankTransactionsFileDto } from './dto/create-bank-transactions-file.dto'
7+
import { ConfigService } from '@nestjs/config'
78

89
@Injectable()
910
export class BankTransactionsFileService {
10-
private readonly bucketName: string = 'banktransactions-files'
11-
constructor(private prisma: PrismaService, private s3: S3Service) {}
11+
constructor(private prisma: PrismaService, private s3: S3Service, private readonly configService: ConfigService) { }
12+
13+
private readonly S3_BUCKET_NAME = 'banktransactions-files'
14+
private readonly bucketName: string = this.configService.get('BANK_TRANSACTION_FILES_BUCKET', this.S3_BUCKET_NAME)
1215

1316
async create(
1417
type: BankTransactionsFileType,

apps/api/src/campaign-application/campaign-application.service.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,17 @@ function dateMaybe(d?: string) {
3030

3131
@Injectable()
3232
export class CampaignApplicationService {
33-
private readonly bucketName: string = 'campaignapplication-files'
3433
constructor(
3534
private prisma: PrismaService,
3635
private organizerService: OrganizerService,
3736
private s3: S3Service,
3837
private emailService: EmailService,
3938
private readonly configService: ConfigService,
4039
) {}
41-
40+
41+
private readonly S3_BUCKET_NAME = 'campaignapplication-files'
42+
private readonly bucketName: string = this.configService.get('CAMPAIGN_APPLICATIONS_FILES_BUCKET', this.S3_BUCKET_NAME)
43+
4244
async create(createCampaignApplicationDto: CreateCampaignApplicationDto, person: Person) {
4345
try {
4446
if (

apps/api/src/campaign-file/campaign-file.module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ import { VaultService } from '../vault/vault.service'
88
import { NotificationModule } from '../sockets/notifications/notification.module'
99
import { MarketingNotificationsModule } from '../notifications/notifications.module'
1010
import { PrismaModule } from '../prisma/prisma.module'
11+
import { ConfigModule } from '@nestjs/config'
1112

1213
@Module({
13-
imports: [NotificationModule, MarketingNotificationsModule, PrismaModule],
14+
imports: [NotificationModule, MarketingNotificationsModule, PrismaModule, ConfigModule],
1415

1516
controllers: [CampaignFileController],
1617
providers: [CampaignFileService, S3Service, PersonService, CampaignService, VaultService],

apps/api/src/campaign-file/campaign-file.service.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,14 @@ import { CampaignFile, CampaignFileRole, Person } from '@prisma/client'
55
import { S3Service } from '../s3/s3.service'
66
import { PrismaService } from '../prisma/prisma.service'
77
import { CreateCampaignFileDto } from './dto/create-campaign-file.dto'
8+
import { ConfigService } from '@nestjs/config'
89

910
@Injectable()
1011
export class CampaignFileService {
11-
private readonly bucketName: string = 'campaign-files'
12-
constructor(private prisma: PrismaService, private s3: S3Service) {}
12+
constructor(private prisma: PrismaService, private s3: S3Service, private readonly configService: ConfigService) { }
13+
14+
private readonly S3_BUCKET_NAME = 'campaign-files'
15+
private readonly bucketName: string = this.configService.get('CAMPAIGN_FILES_BUCKET', this.S3_BUCKET_NAME)
1316

1417
async create(
1518
role: CampaignFileRole,

apps/api/src/campaign-news-file/campaign-news-file.module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ import { S3Service } from '../s3/s3.service'
66
import { PersonModule } from '../person/person.module'
77
import { CampaignNewsModule } from '../campaign-news/campaign-news.module'
88
import { PrismaModule } from '../prisma/prisma.module'
9+
import { ConfigModule } from '@nestjs/config'
910

1011
@Module({
11-
imports: [CampaignNewsModule, PersonModule, PrismaModule],
12+
imports: [CampaignNewsModule, PersonModule, PrismaModule, ConfigModule],
1213
controllers: [CampaignNewsFileController],
1314
providers: [CampaignNewsFileService, S3Service],
1415
})

apps/api/src/campaign-news-file/campaign-news-file.service.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,14 @@ import { S3Service } from '../s3/s3.service'
66
import { PrismaService } from '../prisma/prisma.service'
77
import { CreateCampaignNewsFileDto } from './dto/create-campaign-news-file.dto'
88
import { KeycloakTokenParsed, isAdmin } from '../auth/keycloak'
9+
import { ConfigService } from '@nestjs/config'
910

1011
@Injectable()
1112
export class CampaignNewsFileService {
12-
private readonly bucketName: string = 'campaign-news-files'
13-
constructor(private prisma: PrismaService, private s3: S3Service) {}
13+
constructor(private prisma: PrismaService, private s3: S3Service, private readonly configService:ConfigService) { }
14+
15+
private readonly S3_BUCKET_NAME = 'campaign-news-files'
16+
private readonly bucketName: string = this.configService.get('CAMPAIGN_NEWS_FILES_BUCKET', this.S3_BUCKET_NAME)
1417

1518
async create(
1619
role: CampaignFileRole,

apps/api/src/expenses/expenses.controller.spec.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { CreateExpenseDto } from './dto/create-expense.dto'
88
import { UpdateExpenseDto } from './dto/update-expense.dto'
99
import { S3Service } from '../s3/s3.service'
1010
import { KeycloakTokenParsed } from '../auth/keycloak'
11+
import { ConfigModule } from '@nestjs/config'
1112

1213
const mockData = [
1314
{
@@ -35,6 +36,7 @@ describe('ExpensesController', () => {
3536
prismaMock.expense.findMany.mockResolvedValue(mockData)
3637

3738
const module: TestingModule = await Test.createTestingModule({
39+
imports:[ConfigModule],
3840
controllers: [ExpensesController],
3941
providers: [MockPrismaService, ExpensesService, S3Service],
4042
}).compile()
@@ -43,7 +45,7 @@ describe('ExpensesController', () => {
4345
})
4446

4547
// Reset the mock after each test
46-
afterEach(() => {
48+
> afterEach(() => {
4749
mockReset(prismaMock)
4850
})
4951

apps/api/src/expenses/expenses.module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ import { ExpensesService } from './expenses.service'
33
import { ExpensesController } from './expenses.controller'
44
import { S3Service } from '../s3/s3.service'
55
import { PrismaModule } from '../prisma/prisma.module'
6+
import { ConfigModule } from '@nestjs/config'
67

78
@Module({
8-
imports: [PrismaModule],
9+
imports: [PrismaModule, ConfigModule],
910
controllers: [ExpensesController],
1011
providers: [ExpensesService, S3Service],
1112
})

0 commit comments

Comments
 (0)