tested google sheet it workgit add!!!

This commit is contained in:
Kenta420 2023-10-04 15:26:35 +07:00
parent 6193d1f4a8
commit 529477887b
3 changed files with 43 additions and 19 deletions

View file

@ -5,6 +5,7 @@ import (
"net/http" "net/http"
"recipe-manager/data" "recipe-manager/data"
"recipe-manager/models" "recipe-manager/models"
"recipe-manager/services/sheet"
"sort" "sort"
"strconv" "strconv"
"strings" "strings"
@ -13,12 +14,14 @@ import (
) )
type RecipeRouter struct { 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{ 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) { r.Get("/versions", func(w http.ResponseWriter, r *http.Request) {
json.NewEncoder(w).Encode(rr.data.AllVersions) 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)
})
}) })
} }

View file

@ -17,6 +17,7 @@ import (
"recipe-manager/services/cli" "recipe-manager/services/cli"
"recipe-manager/services/logger" "recipe-manager/services/logger"
"recipe-manager/services/oauth" "recipe-manager/services/oauth"
"recipe-manager/services/sheet"
"strings" "strings"
"sync" "sync"
"time" "time"
@ -437,7 +438,14 @@ func (s *Server) createHandler() {
}) })
// Recipe Router // 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) rr.Route(r)
}) })

View file

@ -10,6 +10,7 @@ import (
) )
type SheetService interface { type SheetService interface {
GetSheet(ctx context.Context, sheetID string) [][]interface{}
} }
type sheetService struct { type sheetService struct {
@ -42,28 +43,35 @@ func NewSheetService(ctx context.Context) (SheetService, error) {
}, nil }, 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() spreadSheet, err := s.service.Spreadsheets.Get(sheetID).Do()
if err != nil { if err != nil {
panic(err) panic(err)
} }
for _, sheet := range spreadSheet.Sheets { var sheetIndex int
for i, sheet := range spreadSheet.Sheets {
// print data collumn C // print data collumn C
readRange := sheet.Properties.Title + "!C:C" if sheet.Properties.Title == "menu-name" {
resp, err := s.service.Spreadsheets.Values.Get(sheetID, readRange).Do() sheetIndex = i
break
if err != nil {
panic(err)
}
if len(resp.Values) == 0 {
println("No data found")
} else {
for _, row := range resp.Values {
println(row[0].(string))
}
} }
} }
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
} }