Consume headers for IP
This commit is contained in:
@@ -2,7 +2,6 @@ import {
|
||||
Body,
|
||||
Controller,
|
||||
Get,
|
||||
Ip,
|
||||
Param,
|
||||
Post,
|
||||
Redirect,
|
||||
@@ -19,6 +18,7 @@ import { FilesInterceptor } from '@nestjs/platform-express';
|
||||
import { generateUniqueSlug } from 'src/utils/slug';
|
||||
import { JunkDrawerMetadata } from './types';
|
||||
import { Request, Response } from 'express';
|
||||
import { ipFromRequest } from 'src/utils/ip';
|
||||
|
||||
@Controller('junk-drawer')
|
||||
@ApiTags('junk-drawer')
|
||||
@@ -27,8 +27,9 @@ export class JunkDrawerController {
|
||||
|
||||
@Get('')
|
||||
@Render('junk-drawer/upload')
|
||||
async generateUploadForm(@Ip() ip: string) {
|
||||
async generateUploadForm(@Req() req: Request) {
|
||||
let items: string[] = [];
|
||||
const ip = ipFromRequest(req);
|
||||
if (ip) {
|
||||
items = await this.junkDrawerService.getItemsForIp(ip);
|
||||
}
|
||||
@@ -87,7 +88,6 @@ export class JunkDrawerController {
|
||||
async handleFileUpload(
|
||||
@UploadedFiles() files: Express.Multer.File[],
|
||||
@Req() request: Request,
|
||||
@Ip() ip: string,
|
||||
@Body('description') description: string,
|
||||
@Body('private-ish') privateIsh: boolean,
|
||||
@Body('remember') remember: boolean,
|
||||
@@ -95,6 +95,7 @@ export class JunkDrawerController {
|
||||
const uniqueSlug = generateUniqueSlug({
|
||||
random: privateIsh,
|
||||
});
|
||||
const ip = ipFromRequest(request);
|
||||
const metadata: JunkDrawerMetadata = {
|
||||
slug: uniqueSlug,
|
||||
version: '1.0.0',
|
||||
|
9
src/utils/ip.ts
Normal file
9
src/utils/ip.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import { Request } from 'express';
|
||||
|
||||
export const ipFromRequest = (req: Request): string | undefined => {
|
||||
const flyIp = req.headers['fly-client-ip'] as string | undefined;
|
||||
const forwardedFor = (req.headers['x-forwarded-for'] as string)?.split(
|
||||
',',
|
||||
)[0];
|
||||
return flyIp || forwardedFor || req.ip;
|
||||
};
|
Reference in New Issue
Block a user