fix: decouple meeting note upload binding

This commit is contained in:
richjohnrambo
2026-09-17 13:38:55 +08:00
parent 734e042af6
commit 8279ae577f
2 changed files with 10 additions and 28 deletions
+2 -21
View File
@@ -257,7 +257,7 @@ func largeFileReceiveHTTP(wrt http.ResponseWriter, req *http.Request) {
writeHttpResponse(ErrAuthRequired(msgID, "", now, now), nil)
return
}
meetingID, meetingNoteIdempotencyKey, err := meetingNoteUploadParams(req, principal)
meetingID, _, err := meetingNoteUploadParams(req, principal)
if err != nil {
writeHttpResponse(decodeStoreError(err, msgID, now, nil), err)
return
@@ -375,16 +375,8 @@ func largeFileReceiveHTTP(wrt http.ResponseWriter, req *http.Request) {
params["expires"] = now.Add(globals.mediaGcPeriod).Format(types.TimeFormatRFC3339)
}
if meetingID != "" {
noteFile, err := createMeetingNoteFromUpload(principal, meetingID, meetingNoteIdempotencyKey, fdef)
if err != nil {
writeHttpResponse(decodeStoreError(err, msgID, now, nil), err)
return
}
params["purpose"] = fileUploadPurposeMeetingNote
params["meeting_id"] = noteFile.MeetingID
params["note_file_id"] = noteFile.NoteFileID
params["note_file_status"] = noteFile.Status
params["version"] = noteFile.Version
params["meeting_id"] = meetingID
}
writeHttpResponse(NoErrParams(msgID, "", now, params), nil)
@@ -398,9 +390,6 @@ func meetingNoteUploadParams(req *http.Request, principal RequestPrincipal) (str
if principal.UID.IsZero() {
return "", "", types.ErrPermissionDenied
}
if store.MeetingNotes == nil {
return "", "", types.ErrUnsupported
}
meetingID := strings.TrimSpace(req.FormValue("meeting_id"))
if meetingID == "" {
return "", "", types.ErrMalformed
@@ -415,14 +404,6 @@ func meetingNoteUploadParams(req *http.Request, principal RequestPrincipal) (str
return meetingID, idempotencyKey, nil
}
func createMeetingNoteFromUpload(principal RequestPrincipal, meetingID, idempotencyKey string, fdef *types.FileDef) (*types.MeetingNoteFile, error) {
if fdef == nil || fdef.Uid().IsZero() {
return nil, types.ErrMalformed
}
noteFileID := "mnote_" + store.Store.GetUidString()
return store.MeetingNotes.CreateFile(principal.TenantID, principal.UID, meetingID, noteFileID, fdef.Uid().String(), idempotencyKey)
}
// LargeFileServe is the gRPC equivalent of largeFileServeHTTP.
func (*grpcNodeServer) LargeFileServe(req *pbx.FileDownReq, stream pbx.Node_LargeFileServeServer) error {
now := types.TimeNow()