From 63ec99e6a59531eaf13beeb0379f183765ab906f Mon Sep 17 00:00:00 2001 From: Francisco Pessano Date: Fri, 13 Jan 2023 18:54:58 -0300 Subject: [PATCH] added metadata on url model --- src/models/queries/Url.queries.ts | 3 +++ src/models/schemas/Url.schema.ts | 5 +++++ src/pages/getUrl/generateGetUrlPage.ts | 4 ++-- src/routes/get-url/getUrl.ts | 6 ++---- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/models/queries/Url.queries.ts b/src/models/queries/Url.queries.ts index e24aea4..ad86adb 100644 --- a/src/models/queries/Url.queries.ts +++ b/src/models/queries/Url.queries.ts @@ -1,4 +1,5 @@ /* eslint-disable quotes */ +import getMetaData from 'metadata-scraper' import { decrypt } from '../../scripts/crypto' import generateId from '../../scripts/generateId' import isUrl from '../../scripts/isUrl' @@ -35,11 +36,13 @@ export async function createUrl( if ( decrypt({ content: user.password, iv: user.crypto.iv }) === password ) { + const metaData = await getMetaData(url) const newUrl: IUrl = { id: generateId(5), url, dateCreated: new Date(), uploadedByUser: user.id, + metaData, } return UrlModel.create(newUrl) } diff --git a/src/models/schemas/Url.schema.ts b/src/models/schemas/Url.schema.ts index 013df6b..caf3bef 100644 --- a/src/models/schemas/Url.schema.ts +++ b/src/models/schemas/Url.schema.ts @@ -5,6 +5,7 @@ export interface IUrl { url: string dateCreated: Date uploadedByUser: string + metaData: Object } export const urlSchema = new Schema( @@ -27,6 +28,10 @@ export const urlSchema = new Schema( type: String, required: true, }, + metaData: { + type: Object, + required: true, + }, }, { collection: 'url', timestamps: true } ) diff --git a/src/pages/getUrl/generateGetUrlPage.ts b/src/pages/getUrl/generateGetUrlPage.ts index db1e82f..302c57c 100644 --- a/src/pages/getUrl/generateGetUrlPage.ts +++ b/src/pages/getUrl/generateGetUrlPage.ts @@ -1,4 +1,4 @@ -export default function (metaData: any) { +export default function (metaData: any, url: string) { return ` @@ -10,7 +10,7 @@ export default function (metaData: any) { diff --git a/src/routes/get-url/getUrl.ts b/src/routes/get-url/getUrl.ts index ac583ad..6a8e836 100644 --- a/src/routes/get-url/getUrl.ts +++ b/src/routes/get-url/getUrl.ts @@ -1,5 +1,4 @@ import { Router, Request, Response } from 'express' -import getMetaData from 'metadata-scraper' import { getUrlById } from '../../models/queries/Url.queries' import generateGetUrlPage from '../../pages/getUrl/generateGetUrlPage' import mongoErrorService from '../../services/mongoErrorService' @@ -14,11 +13,10 @@ router.get('/:urlId', async (req: Request, res: Response) => { }) } try { - const { url } = await getUrlById({ + const { metaData, url } = await getUrlById({ id: urlId, }) - const metaData = await getMetaData(url) - res.send(generateGetUrlPage(metaData)) + res.send(generateGetUrlPage(metaData, url)) } catch (error) { console.log(error) res.status(400).json({