Save creates or updates a skill metadata record.
(rec *SkillMetadataRecord)
| 39 | |
| 40 | // Save creates or updates a skill metadata record. |
| 41 | func (s *SkillStore) Save(rec *SkillMetadataRecord) error { |
| 42 | if rec.ID == "" { |
| 43 | rec.ID = uuid.New().String() |
| 44 | } |
| 45 | rec.UpdatedAt = time.Now() |
| 46 | if rec.CreatedAt.IsZero() { |
| 47 | rec.CreatedAt = rec.UpdatedAt |
| 48 | } |
| 49 | |
| 50 | var existing SkillMetadataRecord |
| 51 | err := s.db.Where("user_id = ? AND name = ?", rec.UserID, rec.Name).First(&existing).Error |
| 52 | if err == nil { |
| 53 | rec.ID = existing.ID |
| 54 | rec.CreatedAt = existing.CreatedAt |
| 55 | return s.db.Model(&existing).Updates(rec).Error |
| 56 | } |
| 57 | return s.db.Create(rec).Error |
| 58 | } |
| 59 | |
| 60 | // Get retrieves a skill by user and name. |
| 61 | func (s *SkillStore) Get(userID, name string) (*SkillMetadataRecord, error) { |
no test coverage detected