Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package sesion
- import (
- "encoding/csv"
- "fmt"
- "os"
- "time"
- )
- // NewSesionFactory Nueva factory de sesiones
- func NewSesionFactory() ([]Sesion, error) {
- csvFile, err := os.Open("./data/sesiones.txt")
- if err != nil {
- return nil, fmt.Errorf("error al abrir el archivo %v", err)
- }
- defer csvFile.Close()
- reader := csv.NewReader(csvFile)
- reader.Comma = '\t' // Use tab-delimited instead of comma <---- here!
- reader.FieldsPerRecord = -1
- csvData, err := reader.ReadAll()
- if err != nil {
- return nil, fmt.Errorf("error al leer el archivo %v", err)
- }
- set := make(map[time.Time]bool)
- loc, err := time.LoadLocation("America/Argentina/San_Juan")
- if err != nil {
- return nil, fmt.Errorf("no se pudo cargar el location %v", err)
- }
- for idx, item := range csvData {
- if idx == 0 {
- continue
- }
- fecha, err := time.ParseInLocation("2006-01-02", item[1], loc)
- if err != nil {
- return nil, fmt.Errorf("error al decodificar la fecha %v", err)
- }
- set[fecha] = true
- }
- var sesiones []Sesion
- for k := range set {
- sesiones = append(sesiones, Sesion{
- Titulo: fmt.Sprintf("Sesión ordinaria del %s", k.Format("02/01/2006")),
- Fecha: k,
- })
- }
- return sesiones, nil
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement