MCPcopy Create free account
hub / github.com/53AI/53AIHub / Save

Method Save

api/model/upload_file.go:49–79  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

47}
48
49func (uploadFile *UploadFile) Save() error {
50 if strings.TrimSpace(uploadFile.SourceType) == "" {
51 uploadFile.SourceType = UploadFileSourceUserUpload
52 }
53
54 var oldUploadFile UploadFile
55 query := DB.Where("eid = ? AND user_id = ? AND hash = ?", uploadFile.Eid, uploadFile.UserID, uploadFile.Hash)
56 if uploadFile.SourceType == UploadFileSourceUserUpload {
57 query = query.Where("(source_type = ? OR source_type = '' OR source_type IS NULL)", UploadFileSourceUserUpload)
58 } else {
59 query = query.Where("source_type = ?", uploadFile.SourceType)
60 }
61
62 if err := query.First(&oldUploadFile).Error; err != nil {
63 if err.Error() == "record not found" {
64 result := DB.Create(uploadFile)
65 if result.Error != nil {
66 return result.Error
67 }
68
69 return nil
70 }
71 return err
72 }
73 result := DB.Model(&oldUploadFile).Updates(uploadFile)
74 if result.Error != nil {
75 return result.Error
76 }
77 *uploadFile = oldUploadFile
78 return nil
79}
80
81// GetUploadFileByEidUserHashAndSourceType 根据 EID、用户、Hash 和来源类型获取上传文件。
82func GetUploadFileByEidUserHashAndSourceType(eid, userID int64, hash, sourceType string) (*UploadFile, error) {

Callers 6

UploadFunction · 0.95
buildPreviewMappingMethod · 0.95

Calls 2

ErrorMethod · 0.45
CreateMethod · 0.45

Tested by

no test coverage detected