func (fs SqlFileInfoStore) Save(info *model.FileInfo) StoreChannel { storeChannel := make(StoreChannel, 1) go func() { result := StoreResult{} info.PreSave() if result.Err = info.IsValid(); result.Err != nil { storeChannel <- result close(storeChannel) return } if err := fs.GetMaster().Insert(info); err != nil { result.Err = model.NewLocAppError("SqlFileInfoStore.Save", "store.sql_file_info.save.app_error", nil, err.Error()) } else { result.Data = info } storeChannel <- result close(storeChannel) }() return storeChannel }