main
Backend Deploy 🚀 / build-and-deploy (push) Has been cancelled

This commit is contained in:
Harun CAN
2026-04-25 14:37:46 +02:00
parent ad5a97a4fd
commit 9d8c34b39d
34 changed files with 5853 additions and 164 deletions
+34 -1
View File
@@ -26,7 +26,7 @@ import {
} from '@nestjs/swagger';
import { FileInterceptor } from '@nestjs/platform-express';
import { ProjectsService } from './projects.service';
import { CreateProjectDto, UpdateProjectDto, CreateFromTweetDto, CreateFromYoutubeDto, CreateFromDocumentDto } from './dto/project.dto';
import { CreateProjectDto, UpdateProjectDto, CreateFromTweetDto, CreateFromYoutubeDto, CreateFromDocumentDto, CreateFromExtractedTextDto } from './dto/project.dto';
@ApiTags('projects')
@ApiBearerAuth()
@@ -191,6 +191,39 @@ export class ProjectsController {
return this.projectsService.createFromDocument(userId, file, dto);
}
/**
* Doküman yüklenip metni çıkarılır ve video konu önerileri üretilir.
*/
@Post('extract-document-topics')
@HttpCode(HttpStatus.OK)
@UseInterceptors(FileInterceptor('file'))
@ApiConsumes('multipart/form-data')
@ApiOperation({ summary: 'Dosyadan metin çıkar ve konu önerileri al' })
@ApiResponse({ status: 200, description: 'Metin ve konular başarıyla çıkarıldı' })
async extractDocumentTopics(
@UploadedFile() file: Express.Multer.File,
@Req() req: any,
) {
this.logger.log(`Dosyadan metin ve konular çıkarılıyor: ${file?.originalname}`);
if (!file) {
throw new BadRequestException('Dosya yüklenmedi');
}
return this.projectsService.extractDocumentTopics(file);
}
/**
* Extracted text ve seçilen konu üzerinden doğrudan proje oluşturur.
*/
@Post('document-from-topic')
@HttpCode(HttpStatus.CREATED)
@ApiOperation({ summary: 'Seçilen konu ve metin ile proje oluştur' })
@ApiResponse({ status: 201, description: 'Seçilen konu baz alınarak proje oluşturuldu' })
async createFromTopic(@Body() dto: CreateFromExtractedTextDto, @Req() req: any) {
const userId = req.user?.id || req.user?.sub;
this.logger.log(`Metin ve konu üzerinden proje oluşturuluyor. Konu: ${dto.topic}`);
return this.projectsService.createFromExtractedText(userId, dto);
}
/**
* Tekil sahne güncelleme (narrasyon, görsel prompt, süre).
*/