(s *model.SharingDB)
| 38 | } |
| 39 | |
| 40 | func CreateSharing(s *model.SharingDB) (string, error) { |
| 41 | if s.ID == "" { |
| 42 | id := random.String(8) |
| 43 | for len(id) < 12 { |
| 44 | old := model.SharingDB{ |
| 45 | ID: id, |
| 46 | } |
| 47 | if err := db.Where(old).First(&old).Error; err != nil { |
| 48 | s.ID = id |
| 49 | return id, errors.WithStack(db.Create(s).Error) |
| 50 | } |
| 51 | id += random.String(1) |
| 52 | } |
| 53 | return "", errors.New("failed find valid id") |
| 54 | } else { |
| 55 | query := model.SharingDB{ID: s.ID} |
| 56 | if err := db.Where(query).First(&query).Error; err == nil { |
| 57 | return "", errors.New("sharing already exist") |
| 58 | } |
| 59 | return s.ID, errors.WithStack(db.Create(s).Error) |
| 60 | } |
| 61 | } |
| 62 | |
| 63 | func UpdateSharing(s *model.SharingDB) error { |
| 64 | return errors.WithStack(db.Save(s).Error) |
no test coverage detected