/
collection.go
51 lines (43 loc) · 1.02 KB
/
collection.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
package metaprotocol
import (
"encoding/csv"
"fmt"
"log"
"os"
"strings"
)
type CollectionReservation struct {
Name string
Ticker string
Address string
}
func GetReservations(fileName string) (map[string]CollectionReservation, map[string]CollectionReservation) {
// open CSV file
fd, error := os.Open(fileName)
if error != nil {
fmt.Println(error)
}
defer fd.Close()
// read CSV file
reader := csv.NewReader(fd)
_, err := reader.Read() // skip header
if err != nil {
log.Fatal(err)
}
reservationsByName := make(map[string]CollectionReservation)
reservationsByTicker := make(map[string]CollectionReservation)
for {
record, err := reader.Read()
if err != nil {
break
}
project := CollectionReservation{
Name: strings.TrimSpace(record[1]),
Ticker: strings.ToUpper(strings.TrimSpace(record[2])),
Address: strings.TrimSpace(record[3]),
}
reservationsByName[project.Name] = project
reservationsByTicker[project.Ticker] = project
}
return reservationsByName, reservationsByTicker
}