Refactor code structure for improved readability and maintainability
This commit is contained in:
39
diagrams/backend/backend3.puml
Normal file
39
diagrams/backend/backend3.puml
Normal file
@@ -0,0 +1,39 @@
|
||||
@startuml Création de vidéo
|
||||
|
||||
actor Client
|
||||
participant "videoRoutes" as Routes
|
||||
participant "VideoController" as Controller
|
||||
participant "Video" as Model
|
||||
participant "Measurement" as MeasurementModel
|
||||
participant "VideoService" as Service
|
||||
participant "FFmpeg" as FFmpeg
|
||||
database Database
|
||||
|
||||
Client -> Routes: POST /videos
|
||||
Routes -> Controller: createVideo(req, res)
|
||||
Controller -> Model: createVideo(project_id, measurement_ids, name, resolution, duration)
|
||||
Model -> Database: INSERT INTO videos
|
||||
Database --> Model: video data
|
||||
Model --> Controller: video object
|
||||
|
||||
Controller -> Controller: getMeasurementPathList(measurement_ids, project_id)
|
||||
Controller -> MeasurementModel: getMeasurementByProjectAndOrderId(projectId, orderId)
|
||||
MeasurementModel -> Database: SELECT * FROM measurements
|
||||
Database --> MeasurementModel: measurement data
|
||||
MeasurementModel --> Controller: measurement object with path
|
||||
|
||||
Controller -> Service: createVideoFromImages(project_id, pathList, duration, video_id, resWidth, resHeight)
|
||||
Service -> FFmpeg: spawn('ffmpeg', ffmpegArgs)
|
||||
Service -> Model: updateVideo(videoId, {status: rendering, progress: 0})
|
||||
Model -> Database: UPDATE videos SET status = rendering, progress = 0
|
||||
FFmpeg --> Service: stderr progress events
|
||||
Service -> Model: updateVideoProgress(videoId, progress, eta)
|
||||
Model -> Database: UPDATE videos SET progress = X, eta = Y
|
||||
FFmpeg --> Service: process complete
|
||||
Service -> Model: updateVideo(videoId, {status: completed, progress: 100})
|
||||
Model -> Database: UPDATE videos SET status = completed, progress = 100
|
||||
Service --> Controller: videoFile path
|
||||
Controller --> Routes: { message: success, id: video.id }
|
||||
Routes --> Client: 200 OK - JSON Response
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user