/
accessions.go
55 lines (44 loc) · 1.21 KB
/
accessions.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package database
import (
"github.com/dmnyu/go-medialog/models"
)
func FindAccessions() []models.Accession {
accessions := []models.Accession{}
db.Find(&accessions)
return accessions
}
func FindAccession(id int) (models.Accession, error) {
accession := models.Accession{}
if err := db.Where("id = ?", id).First(&accession).Error; err != nil {
return accession, err
}
return accession, nil
}
func InsertAccession(accession models.Accession) (int, error) {
if err := db.Create(&accession).Error; err != nil {
return 0, err
}
return int(accession.ID), nil
}
func DeleteAccession(accession *models.Accession) error {
if err := db.Delete(accession).Error; err != nil {
return err
}
return nil
}
func FindAccessionsByResourceID(resourceID uint) (*[]models.Accession, error) {
accessions := []models.Accession{}
if err := db.Where("resource_id = ?", resourceID).Find(&accessions).Error; err != nil {
return nil, err
}
return &accessions, nil
}
func GetAccessionIdentifiers() *map[int]string {
accessions := []models.Accession{}
db.Find(&accessions)
var accessionMap = map[int]string{}
for _, accession := range accessions {
accessionMap[int(accession.ID)] = accession.Identifiers
}
return &accessionMap
}