Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 24 additions & 41 deletions src/modules/common/services/blobStorage.service.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { BadRequestException, Injectable } from "@nestjs/common";
import { BadRequestException, Injectable, Logger } from "@nestjs/common";
import { ConfigService } from "@nestjs/config";

// ---- Third Party Libraries
Expand All @@ -18,87 +18,70 @@ export class BlobStorageService {
private containerClient: ContainerClient;
private aiContainerClient: ContainerClient;
private downGradeHubClient: ContainerClient;
private readonly logger = new Logger(BlobStorageService.name);

/**
* Constructor to initialize BlobStorageService with required dependencies.
* @param configService - Injected ConfigService to access environment variables.
*/
constructor(private configService: ConfigService) {
const AZURE_STORAGE_CONNECTION_STRING = this.configService.get(
"azure.connectionString",
);
const feedbackBlobContainer = this.configService.get(
"feedbackBlob.container",
);
const aiConversationBLobContainer = this.configService.get(
"ai.conversationConatiner",
);

try {
/**
* Create an instance of BlobServiceClient using the connection string.
*/

const azureConnectionString = this.configService.get(
"azure.connectionString",
);
const feedbackBlobContainer = this.configService.get(
"feedbackBlob.container",
);
const aiConversationBLobContainer = this.configService.get(
"ai.conversationConatiner",
);
const downgradeHubBlobContainer = this.configService.get(
"downgradeHub.container",
);

if (!azureConnectionString) {
console.warn(
"Azure Storage is disabled: No connection string provided.",
this.logger.warn(
"Azure Storage disabled: Connection string not provided",
);
return;
}

const feedbackBlobContainer = this.configService.get(
"feedbackBlob.container",
);

if (!feedbackBlobContainer) {
console.warn("Feedback Blob is disabled: No container provided.");
this.logger.warn("Feedback Blob disabled: Container not provided");
return;
}

const aiConversationBLobContainer = this.configService.get(
"ai.conversationConatiner",
);

if (!aiConversationBLobContainer) {
console.warn(
"AI Conversation Blob is disabled: No container provided.",
this.logger.warn(
"AI Conversation Blob disabled: Container not provided",
);
return;
}

const downgradeHubBlobContainer = this.configService.get(
"downgradeHub.container",
);

if (!downgradeHubBlobContainer) {
console.warn("Downgrade Blob is disabled: No container provided.");
this.logger.warn("Downgrade Blob disabled: Container not provided");
return;
}

this.blobServiceClient = BlobServiceClient.fromConnectionString(
azureConnectionString,
);
/**
* Get a ContainerClient instance for the 'feedbackfiles' container.
*/
this.containerClient = this.blobServiceClient.getContainerClient(
feedbackBlobContainer,
);
/**
* Get a ContainerClient instance for the 'AI Conversation Doc' container.
*/
this.aiContainerClient = this.blobServiceClient.getContainerClient(
aiConversationBLobContainer,
);
this.downGradeHubClient = this.blobServiceClient.getContainerClient(
downgradeHubBlobContainer,
);
} catch (e) {
console.error(e);

this.logger.log("Azure Blob Storage initialized successfully");
} catch (error) {
this.logger.error(
`Azure Blob Storage initialization failed: ${error.message}`,
);
throw error;
}
}

Expand Down
Loading