Skip to content

Commit b43ef4f

Browse files
committed
commit
1 parent f2bb59f commit b43ef4f

10 files changed

+4448
-2750
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ node_modules
33
backend/dist/
44
backend/uploads/
55

6-
frontend/.env.local/
6+
frontend/.env.local/

backend/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.env

backend/package-lock.json

Lines changed: 4369 additions & 2748 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"test:e2e": "jest --config ./test/jest-e2e.json"
2121
},
2222
"dependencies": {
23+
"@aws-sdk/client-s3": "^3.772.0",
2324
"@neondatabase/serverless": "^0.10.4",
2425
"@nestjs/cache-manager": "^3.0.0",
2526
"@nestjs/common": "^11.0.1",

backend/src/app.module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ import { DrizzleModule } from './drizzle.module';
88
import { DatabaseModule } from './database.module';
99
// import { RedisService } from './redis.service';
1010
import { FriendsModule } from './friends/friends.module';
11+
import { UploadModule } from './upload/upload.module';
1112

1213
@Module({
13-
imports: [FilesModule, UsersModule, AdminModule , DrizzleModule , DatabaseModule, FriendsModule],
14+
imports: [FilesModule, UsersModule, AdminModule , DrizzleModule , DatabaseModule, FriendsModule, UploadModule],
1415
controllers: [AppController],
1516
providers: [AppService],//[RedisService]
1617
})
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { Test, TestingModule } from '@nestjs/testing';
2+
import { UploadController } from './upload.controller';
3+
4+
describe('UploadController', () => {
5+
let controller: UploadController;
6+
7+
beforeEach(async () => {
8+
const module: TestingModule = await Test.createTestingModule({
9+
controllers: [UploadController],
10+
}).compile();
11+
12+
controller = module.get<UploadController>(UploadController);
13+
});
14+
15+
it('should be defined', () => {
16+
expect(controller).toBeDefined();
17+
});
18+
});
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { Controller } from '@nestjs/common';
2+
3+
@Controller('upload')
4+
export class UploadController {
5+
}

backend/src/upload/upload.module.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { Module } from '@nestjs/common';
2+
import { UploadController } from './upload.controller';
3+
import { UploadService } from './upload.service';
4+
5+
@Module({
6+
controllers: [UploadController],
7+
providers: [UploadService]
8+
})
9+
export class UploadModule {}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { Test, TestingModule } from '@nestjs/testing';
2+
import { UploadService } from './upload.service';
3+
4+
describe('UploadService', () => {
5+
let service: UploadService;
6+
7+
beforeEach(async () => {
8+
const module: TestingModule = await Test.createTestingModule({
9+
providers: [UploadService],
10+
}).compile();
11+
12+
service = module.get<UploadService>(UploadService);
13+
});
14+
15+
it('should be defined', () => {
16+
expect(service).toBeDefined();
17+
});
18+
});

backend/src/upload/upload.service.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { Injectable } from '@nestjs/common';
2+
import * as dotenv from 'dotenv';
3+
import {S3Client,} from "@aws-sdk/client-s3";
4+
5+
6+
dotenv.config();
7+
8+
@Injectable()
9+
export class UploadService {
10+
private s3:S3Client;
11+
12+
//used a constructor to reduce the performace overhead as each user comes
13+
constructor(){
14+
this.s3=new S3Client({
15+
region:'auto',
16+
endpoint:process.env.R2_ENDPOINT
17+
18+
})
19+
}
20+
21+
22+
23+
24+
}

0 commit comments

Comments
 (0)