38 lines
727 B
Go
38 lines
727 B
Go
package server
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
"time"
|
|
|
|
"github.com/labstack/echo/v4"
|
|
)
|
|
|
|
func getDate(c echo.Context) (Month, error) {
|
|
var year, month int
|
|
yearString := c.Param("year")
|
|
monthString := c.Param("month")
|
|
if yearString == "" && monthString == "" {
|
|
return getFirstOfMonthTime(time.Now()), nil
|
|
}
|
|
|
|
year, err := strconv.Atoi(yearString)
|
|
if err != nil {
|
|
return Month{}, fmt.Errorf("parse year: %w", err)
|
|
}
|
|
|
|
month, err = strconv.Atoi(monthString)
|
|
if err != nil {
|
|
return Month{}, fmt.Errorf("parse month: %w", err)
|
|
}
|
|
|
|
return Month{year, month}, nil
|
|
}
|
|
|
|
func getFirstOfMonthTime(date time.Time) Month {
|
|
var monthM time.Month
|
|
year, monthM, _ := date.Date()
|
|
month := int(monthM)
|
|
return Month{year, month}
|
|
}
|