diff options
Diffstat (limited to 'src/server/ApiManagers')
-rw-r--r-- | src/server/ApiManagers/AssistantManager.ts | 4 | ||||
-rw-r--r-- | src/server/ApiManagers/AzureManager.ts | 43 | ||||
-rw-r--r-- | src/server/ApiManagers/UserManager.ts | 29 |
3 files changed, 39 insertions, 37 deletions
diff --git a/src/server/ApiManagers/AssistantManager.ts b/src/server/ApiManagers/AssistantManager.ts index af25722a4..20ec0dfe6 100644 --- a/src/server/ApiManagers/AssistantManager.ts +++ b/src/server/ApiManagers/AssistantManager.ts @@ -439,9 +439,9 @@ export default class AssistantManager extends ApiManager { try { const image = await openai.images.generate({ model: 'dall-e-3', prompt: image_prompt, response_format: 'url' }); console.log(image); - const result = await DashUploadUtils.UploadImage(image.data[0].url!); + const url = image.data?.[0].url; - const url = image.data[0].url; + const result = url ? await DashUploadUtils.UploadImage(url) : { error: 'Image generation failed' }; res.send({ result, url }); } catch (error) { diff --git a/src/server/ApiManagers/AzureManager.ts b/src/server/ApiManagers/AzureManager.ts index 2d0ab3aa6..d54b15810 100644 --- a/src/server/ApiManagers/AzureManager.ts +++ b/src/server/ApiManagers/AzureManager.ts @@ -1,37 +1,38 @@ -import { ContainerClient, BlobServiceClient } from "@azure/storage-blob"; -import * as fs from "fs"; -import { Readable, Stream } from "stream"; -import * as path from "path"; +import { ContainerClient, BlobServiceClient } from '@azure/storage-blob'; +import * as fs from 'fs'; +import { Readable } from 'stream'; +import * as path from 'path'; const AZURE_STORAGE_CONNECTION_STRING = process.env.AZURE_STORAGE_CONNECTION_STRING; const extToType: { [suffix: string]: string } = { - ".jpeg" : "image/jpeg", - ".jpg" : "image/jpeg", - ".png" : "image/png", - ".svg" : "image/svg+xml", - ".webp" : "image/webp", - ".gif" : "image/gif" -} + '.jpeg': 'image/jpeg', + '.jpg': 'image/jpeg', + '.png': 'image/png', + '.svg': 'image/svg+xml', + '.webp': 'image/webp', + '.gif': 'image/gif', +}; export class AzureManager { private _containerClient: ContainerClient; private _blobServiceClient: BlobServiceClient; private static _instance: AzureManager | undefined; - public static CONTAINER_NAME = "dashmedia"; - public static STORAGE_ACCOUNT_NAME = "dashblobstore"; + public static CONTAINER_NAME = 'dashmedia'; + public static STORAGE_ACCOUNT_NAME = 'dashblobstore'; public static BASE_STRING = `https://${AzureManager.STORAGE_ACCOUNT_NAME}.blob.core.windows.net/${AzureManager.CONTAINER_NAME}`; constructor() { if (!AZURE_STORAGE_CONNECTION_STRING) { - throw new Error("Azure Storage Connection String Not Found"); + throw new Error('Azure Storage Connection String Not Found'); } this._blobServiceClient = BlobServiceClient.fromConnectionString(AZURE_STORAGE_CONNECTION_STRING); this._containerClient = this.BlobServiceClient.getContainerClient(AzureManager.CONTAINER_NAME); } public static get Instance() { - return this._instance = this._instance ?? new AzureManager(); + this._instance = this._instance ?? new AzureManager(); + return this._instance; } public get BlobServiceClient() { @@ -44,14 +45,14 @@ export class AzureManager { public static UploadBlob(filename: string, filepath: string, filetype: string) { const blockBlobClient = this.Instance.ContainerClient.getBlockBlobClient(filename); - const blobOptions = { blobHTTPHeaders: { blobContentType: filetype }}; + const blobOptions = { blobHTTPHeaders: { blobContentType: filetype } }; const stream = fs.createReadStream(filepath); return blockBlobClient.uploadStream(stream, undefined, undefined, blobOptions); } public static UploadBase64ImageBlob(filename: string, data: string, filetype?: string) { const confirmedFiletype = filetype ? filetype : extToType[path.extname(filename)]; - const buffer = Buffer.from(data, "base64"); + const buffer = Buffer.from(data, 'base64'); const blockBlobClient = this.Instance.ContainerClient.getBlockBlobClient(filename); const blobOptions = { blobHTTPHeaders: { blobContentType: confirmedFiletype } }; return blockBlobClient.upload(buffer, buffer.length, blobOptions); @@ -59,7 +60,7 @@ export class AzureManager { public static UploadBlobStream(stream: Readable, filename: string, filetype: string) { const blockBlobClient = this.Instance.ContainerClient.getBlockBlobClient(filename); - const blobOptions = { blobHTTPHeaders: { blobContentType: filetype }}; + const blobOptions = { blobHTTPHeaders: { blobContentType: filetype } }; return blockBlobClient.uploadStream(stream, undefined, undefined, blobOptions); } @@ -74,9 +75,9 @@ export class AzureManager { console.log(`${blob.name}`); const blobItem = { - url : `https://${AzureManager.STORAGE_ACCOUNT_NAME}.blob.core.windows.net/${AzureManager.CONTAINER_NAME}/${blob.name}`, - name : blob.name - } + url: `https://${AzureManager.STORAGE_ACCOUNT_NAME}.blob.core.windows.net/${AzureManager.CONTAINER_NAME}/${blob.name}`, + name: blob.name, + }; foundBlobs.push(blobItem); } diff --git a/src/server/ApiManagers/UserManager.ts b/src/server/ApiManagers/UserManager.ts index b587340e2..b42c974ac 100644 --- a/src/server/ApiManagers/UserManager.ts +++ b/src/server/ApiManagers/UserManager.ts @@ -22,6 +22,7 @@ export default class UserManager extends ApiManager { secureHandler: async ({ res }) => { const cursor = await Database.Instance.query({}, { email: 1, linkDatabaseId: 1, sharingDocumentId: 1 }, 'users'); const results = await cursor.toArray(); + // eslint-disable-next-line @typescript-eslint/no-explicit-any res.send(results.map((user: any) => ({ email: user.email, linkDatabaseId: user.linkDatabaseId, sharingDocumentId: user.sharingDocumentId }))); }, }); @@ -31,9 +32,10 @@ export default class UserManager extends ApiManager { subscription: '/setCacheDocumentIds', secureHandler: async ({ user, req, res }) => { const userModel = user; - const result: any = {}; + const result: { error?: unknown } = {}; userModel.cacheDocumentIds = req.body.cacheDocumentIds; - userModel.save().then(undefined, (err: any) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + userModel.save?.().then(undefined, (err: any) => { if (err) { result.error = [{ msg: 'Error while caching documents' }]; } @@ -90,20 +92,19 @@ export default class UserManager extends ApiManager { subscription: '/internalResetPassword', secureHandler: async ({ user, req, res }) => { const userModel = user; - const result: any = {}; - // eslint-disable-next-line camelcase + const result: { error?: unknown } = {}; const { curr_pass, new_pass } = req.body; // perhaps should assert whether curr password is entered correctly const validated = await new Promise<Opt<boolean>>(resolve => { - bcrypt.compare(curr_pass, userModel.password, (err, passwordsMatch) => { - if (err || !passwordsMatch) { - result.error = [{ msg: 'Incorrect current password' }]; - res.send(result); - resolve(undefined); - } else { - resolve(passwordsMatch); - } - }); + userModel.password && + bcrypt.compare(curr_pass, userModel.password, (err, passwordsMatch) => { + if (err || !passwordsMatch) { + res.send({ error: [{ msg: 'Incorrect current password' }] }); + resolve(undefined); + } else { + resolve(passwordsMatch); + } + }); }); if (validated === undefined) { @@ -133,7 +134,7 @@ export default class UserManager extends ApiManager { userModel.passwordResetExpires = undefined; } - userModel.save().then(undefined, err => { + userModel.save?.().then(undefined, err => { if (err) { result.error = [{ msg: 'Error while saving new password' }]; } |