Created
May 15, 2020 06:08
-
-
Save narup/8695dfd9c5c13a1b19b9af6723451d90 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| //In spreadsheet_cfg.go | |
| func readSpreadsheetTemplates() error { | |
| fp := "config-templates/spreadsheet-templates.json" | |
| jsonFile, err := os.Open(fp) | |
| if err != nil { | |
| return err | |
| } | |
| defer jsonFile.Close() | |
| byteValue, err := ioutil.ReadAll(jsonFile) | |
| if err != nil { | |
| return err | |
| } | |
| var sheets map[string]gsheet.SpreadSheet | |
| err = json.Unmarshal([]byte(byteValue), &sheets) | |
| if err != nil { | |
| return err | |
| } | |
| for sheetName, sheet := range sheets { | |
| sheetKey := fmt.Sprintf("%s.%s", SpreadsheetDomain, sheetName) | |
| Set(sheetKey, sheet) | |
| if sheet.Reload { | |
| sl := sheetLoaderMap[sheet.SheetID] | |
| go loadSheetData(sl) | |
| } | |
| } | |
| return nil | |
| } | |
| func loadSheetData(sl SheetLoader) { | |
| defer handlePanic("SheetLoader...") | |
| sl.Load() | |
| } | |
| //SheetLoader type that loads the sheet data | |
| type SheetLoader interface { | |
| SheetID() string | |
| Load() error | |
| } | |
| var sheetLoaderMap map[string]SheetLoader | |
| func init() { | |
| sr := gsheet.ScrubAndRouteSheetLoader{} | |
| sheetLoaderMap[sr.SheetID()] = sr | |
| } | |
| //In scrub_and_route_cfg.go | |
| type ScrubAndRouteSheetLoader struct { | |
| } | |
| func (s ScrubAndRouteSheetLoader) SheetID() string { | |
| return scrubAndRouteDataSheetID | |
| } | |
| func (s ScrubAndRouteSheetLoader) Load() error { | |
| //Load data here! | |
| return nil | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment