48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package WebContent
 | |
| 
 | |
| import (
 | |
| 	"github.com/SommerEngineering/Ocean/ConfigurationDB"
 | |
| 	"github.com/SommerEngineering/Ocean/CustomerDB"
 | |
| 	"github.com/SommerEngineering/Ocean/Log"
 | |
| 	LM "github.com/SommerEngineering/Ocean/Log/Meta"
 | |
| 	"io/ioutil"
 | |
| )
 | |
| 
 | |
| /*
 | |
| Init the web content package. It is used to provided some static data for web
 | |
| frameworks like e.g. jQuery, d3.js, Bootstrap, etc.
 | |
| */
 | |
| func init() {
 | |
| 
 | |
| 	Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameINIT, `Run init for the web content.`)
 | |
| 	defer Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameINIT, `Init for web content done.`)
 | |
| 
 | |
| 	// Ensure that we init this package only once:
 | |
| 	if isInit {
 | |
| 		Log.LogFull(senderName, LM.CategorySYSTEM, LM.LevelWARN, LM.SeverityHigh, LM.ImpactNone, LM.MessageNameINIT, `The web content is already fine.`)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	// Get the filename out of the database:
 | |
| 	filename = ConfigurationDB.Read(`FilenameWebResources`)
 | |
| 	dbSession, gridFS := CustomerDB.GridFS()
 | |
| 	defer dbSession.Close()
 | |
| 
 | |
| 	// Open the file out of the grid file system:
 | |
| 	if gridFile, errGridFile := gridFS.Open(filename); errGridFile != nil {
 | |
| 		Log.LogFull(senderName, LM.CategorySYSTEM, LM.LevelERROR, LM.SeverityCritical, LM.ImpactCritical, LM.MessageNameDATABASE, `Was not able to open the web content out of the GridFS!`, filename, errGridFile.Error())
 | |
| 		return
 | |
| 	} else {
 | |
| 		// Read all the data in the memeory cache:
 | |
| 		defer gridFile.Close()
 | |
| 		if data, ioError := ioutil.ReadAll(gridFile); ioError != nil {
 | |
| 			Log.LogFull(senderName, LM.CategorySYSTEM, LM.LevelERROR, LM.SeverityCritical, LM.ImpactCritical, LM.MessageNameDATABASE, `Was not able to read the web content file.`, filename, ioError.Error())
 | |
| 			return
 | |
| 		} else {
 | |
| 			zipData = data
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	return
 | |
| }
 |