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"
"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)
})
})
}

View file

@ -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)
})

View file

@ -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
}