tested google sheet it workgit add!!!
This commit is contained in:
parent
6193d1f4a8
commit
529477887b
3 changed files with 43 additions and 19 deletions
|
|
@ -5,6 +5,7 @@ import (
|
|||
"net/http"
|
||||
"recipe-manager/data"
|
||||
"recipe-manager/models"
|
||||
"recipe-manager/services/sheet"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
|
@ -13,12 +14,14 @@ import (
|
|||
)
|
||||
|
||||
type RecipeRouter struct {
|
||||
data *data.Data
|
||||
data *data.Data
|
||||
sheetService sheet.SheetService
|
||||
}
|
||||
|
||||
func NewRecipeRouter(data *data.Data) *RecipeRouter {
|
||||
func NewRecipeRouter(data *data.Data, sheetService sheet.SheetService) *RecipeRouter {
|
||||
return &RecipeRouter{
|
||||
data: data,
|
||||
data: data,
|
||||
sheetService: sheetService,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -99,5 +102,10 @@ func (rr *RecipeRouter) Route(r chi.Router) {
|
|||
r.Get("/versions", func(w http.ResponseWriter, r *http.Request) {
|
||||
json.NewEncoder(w).Encode(rr.data.AllVersions)
|
||||
})
|
||||
|
||||
r.Get("/test/sheet", func(w http.ResponseWriter, r *http.Request) {
|
||||
result := rr.sheetService.GetSheet(r.Context(), "1rSUKcc5POR1KeZFGoeAZIoVoI7LPGztBhPw5Z_ConDE")
|
||||
json.NewEncoder(w).Encode(result)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import (
|
|||
"recipe-manager/services/cli"
|
||||
"recipe-manager/services/logger"
|
||||
"recipe-manager/services/oauth"
|
||||
"recipe-manager/services/sheet"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
|
@ -437,7 +438,14 @@ func (s *Server) createHandler() {
|
|||
})
|
||||
|
||||
// Recipe Router
|
||||
rr := routers.NewRecipeRouter(database)
|
||||
sheetService, err := sheet.NewSheetService(context.Background())
|
||||
|
||||
if err != nil {
|
||||
Log.Fatal("Error while trying to create sheet service: ", zap.Error(err))
|
||||
return
|
||||
}
|
||||
|
||||
rr := routers.NewRecipeRouter(database, sheetService)
|
||||
rr.Route(r)
|
||||
|
||||
})
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import (
|
|||
)
|
||||
|
||||
type SheetService interface {
|
||||
GetSheet(ctx context.Context, sheetID string) [][]interface{}
|
||||
}
|
||||
|
||||
type sheetService struct {
|
||||
|
|
@ -42,28 +43,35 @@ func NewSheetService(ctx context.Context) (SheetService, error) {
|
|||
}, nil
|
||||
}
|
||||
|
||||
func (s *sheetService) GetSheet(ctx context.Context, sheetID string) {
|
||||
func (s *sheetService) GetSheet(ctx context.Context, sheetID string) [][]interface{} {
|
||||
spreadSheet, err := s.service.Spreadsheets.Get(sheetID).Do()
|
||||
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
for _, sheet := range spreadSheet.Sheets {
|
||||
var sheetIndex int
|
||||
for i, sheet := range spreadSheet.Sheets {
|
||||
// print data collumn C
|
||||
readRange := sheet.Properties.Title + "!C:C"
|
||||
resp, err := s.service.Spreadsheets.Values.Get(sheetID, readRange).Do()
|
||||
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if len(resp.Values) == 0 {
|
||||
println("No data found")
|
||||
} else {
|
||||
for _, row := range resp.Values {
|
||||
println(row[0].(string))
|
||||
}
|
||||
if sheet.Properties.Title == "menu-name" {
|
||||
sheetIndex = i
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
sheet, err := s.service.Spreadsheets.Values.Get(sheetID, spreadSheet.Sheets[sheetIndex].Properties.Title).Do()
|
||||
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
result := [][]interface{}{}
|
||||
|
||||
for _, row := range sheet.Values {
|
||||
if len(row) >= 6 {
|
||||
result = append(result, row)
|
||||
}
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue