AttachmentsService
Class: AttachmentsService
Defined in: apps/api/src/modules/attachments/attachments.service.ts:28
Сервис для работы с вложениями (attachments).
Отвечает за:
- создание вложений типа "link" и "s3";
- получение списка вложений по проекту;
- получение одного вложения по ID;
- обновление метаданных вложения;
- удаление вложения.
Все операции проверяют принадлежность вложения к clientId текущего пользователя для обеспечения изоляции данных.
Constructors
Constructor
new AttachmentsService(
prisma,storage,config):AttachmentsService
Defined in: apps/api/src/modules/attachments/attachments.service.ts:31
Parameters
prisma
storage
config
ConfigService
Returns
AttachmentsService
Methods
createLink()
createLink(
clientId,dto):Promise<Attachment>
Defined in: apps/api/src/modules/attachments/attachments.service.ts:261
Создать вложение типа "link".
Parameters
clientId
string
ID клиента (из JWT)
dto
Данные для создания
Returns
Promise<Attachment>
Созданное вложение
Route
POST /attachments/link
createS3()
createS3(
clientId,dto):Promise<Attachment>
Defined in: apps/api/src/modules/attachments/attachments.service.ts:293
Создать вложение типа "s3".
Parameters
clientId
string
ID клиента (из JWT)
dto
Данные для создания
Returns
Promise<Attachment>
Созданное вложение с presigned URL для скачивания
Route
POST /attachments/s3
Вызывается после того, как файл был загружен в S3.
findByProject()
findByProject(
clientId,projectId):Promise<Attachment[]>
Defined in: apps/api/src/modules/attachments/attachments.service.ts:224
Получить список всех вложений по проекту.
Parameters
clientId
string
ID клиента (из JWT)
projectId
string
ID проекта
Returns
Promise<Attachment[]>
Список вложений
Route
GET /attachments?projectId=X
findOne()
findOne(
clientId,id):Promise<Attachment>
Defined in: apps/api/src/modules/attachments/attachments.service.ts:246
Получить одно вложение по ID.
Parameters
clientId
string
ID клиента (из JWT)
id
string
ID вложения
Returns
Promise<Attachment>
Вложение
Route
GET /attachments/:id
generateUploadUrl()
generateUploadUrl(
clientId,projectId,filename,contentType):Promise<{storageKey:string;uploadUrl:string; }>
Defined in: apps/api/src/modules/attachments/attachments.service.ts:438
Получить presigned URL для загрузки файла в S3.
Parameters
clientId
string
ID клиента (из JWT)
projectId
string
ID проекта
filename
string
Имя файла
contentType
string
MIME-тип файла
Returns
Promise<{ storageKey: string; uploadUrl: string; }>
Presigned URL для загрузки и сгенерированный ключ хранилища
Route
POST /attachments/upload-url
Генерирует временный URL для прямой загрузки файла клиентом в S3.
importFromUrl()
importFromUrl(
clientId,dto):Promise<Attachment>
Defined in: apps/api/src/modules/attachments/attachments.service.ts:324
Импортировать вложение по URL без сохранения в storage.
Parameters
clientId
string
ID клиента (из JWT)
dto
Данные для импорта
Returns
Promise<Attachment>
Созданное или найденное вложение
Route
POST /attachments/import-url
refreshDownloadUrl()
refreshDownloadUrl(
clientId,id):Promise<Attachment>
Defined in: apps/api/src/modules/attachments/attachments.service.ts:463
Обновить presigned URL для скачивания S3-вложения.
Используется для обновления истёкших URL.
Parameters
clientId
string
ID клиента (из JWT)
id
string
ID вложения
Returns
Promise<Attachment>
Обновлённое вложение с новым URL
remove()
remove(
clientId,id):Promise<void>
Defined in: apps/api/src/modules/attachments/attachments.service.ts:390
Удалить вложение.
Parameters
clientId
string
ID клиента (из JWT)
id
string
ID вложения
Returns
Promise<void>
Route
DELETE /attachments/:id
Удаляет запись из БД и файл из S3 (если kind === 's3').
update()
update(
clientId,id,dto):Promise<Attachment>
Defined in: apps/api/src/modules/attachments/attachments.service.ts:367
Обновить метаданные вложения.
Parameters
clientId
string
ID клиента (из JWT)
id
string
ID вложения
dto
Данные для обновления
Returns
Promise<Attachment>
Обновленное вложение
Route
PATCH /attachments/:id
Позволяет обновить только имя вложения.