76 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			76 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								package controllers
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import (
							 | 
						||
| 
								 | 
							
									"net/http"
							 | 
						||
| 
								 | 
							
									"os"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									"forge.redroom.link/yves/sqldb"
							 | 
						||
| 
								 | 
							
									beego "github.com/beego/beego/v2/server/web"
							 | 
						||
| 
								 | 
							
									"github.com/rs/zerolog/log"
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Operations about schema
							 | 
						||
| 
								 | 
							
								type HelperController struct {
							 | 
						||
| 
								 | 
							
									beego.Controller
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// @Title ParseHeader
							 | 
						||
| 
								 | 
							
								// @Description Post raw header
							 | 
						||
| 
								 | 
							
								// @Param	body		body 	form data		"body of jsonform data"
							 | 
						||
| 
								 | 
							
								// @Success 200 {string} success !
							 | 
						||
| 
								 | 
							
								// @Failure 500 query error
							 | 
						||
| 
								 | 
							
								// @router /header [post]
							 | 
						||
| 
								 | 
							
								func (s *HelperController) ParseHeader() {
							 | 
						||
| 
								 | 
							
									db := sqldb.Open(os.Getenv("driverdb"), os.Getenv("paramsdb"))
							 | 
						||
| 
								 | 
							
									data, err := db.ListTables()
							 | 
						||
| 
								 | 
							
									if err != nil {
							 | 
						||
| 
								 | 
							
										log.Error().Msg(err.Error())
							 | 
						||
| 
								 | 
							
										s.Data["json"] = map[string]string{"error": err.Error()}
							 | 
						||
| 
								 | 
							
										s.Ctx.Output.SetStatus(http.StatusInternalServerError)
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									s.Data["json"] = data
							 | 
						||
| 
								 | 
							
									s.ServeJSON()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									db.Close()
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// @Title CreateTable
							 | 
						||
| 
								 | 
							
								// @Description Post raw header
							 | 
						||
| 
								 | 
							
								// @Param	body		body 	form data		"body of jsonform data"
							 | 
						||
| 
								 | 
							
								// @Success 200 {string} success !
							 | 
						||
| 
								 | 
							
								// @Failure 500 query error
							 | 
						||
| 
								 | 
							
								// @router /create [post]
							 | 
						||
| 
								 | 
							
								func (s *HelperController) CreateTable() {
							 | 
						||
| 
								 | 
							
									db := sqldb.Open(os.Getenv("driverdb"), os.Getenv("paramsdb"))
							 | 
						||
| 
								 | 
							
									data, err := db.ListTables()
							 | 
						||
| 
								 | 
							
									if err != nil {
							 | 
						||
| 
								 | 
							
										log.Error().Msg(err.Error())
							 | 
						||
| 
								 | 
							
										s.Data["json"] = map[string]string{"error": err.Error()}
							 | 
						||
| 
								 | 
							
										s.Ctx.Output.SetStatus(http.StatusInternalServerError)
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									s.Data["json"] = data
							 | 
						||
| 
								 | 
							
									s.ServeJSON()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									db.Close()
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// @Title Import
							 | 
						||
| 
								 | 
							
								// @Description Post raw header
							 | 
						||
| 
								 | 
							
								// @Param	body		body 	form data		"body of jsonform data"
							 | 
						||
| 
								 | 
							
								// @Success 200 {string} success !
							 | 
						||
| 
								 | 
							
								// @Failure 500 query error
							 | 
						||
| 
								 | 
							
								// @router /import/:table [post]
							 | 
						||
| 
								 | 
							
								func (s *HelperController) Import() {
							 | 
						||
| 
								 | 
							
									db := sqldb.Open(os.Getenv("driverdb"), os.Getenv("paramsdb"))
							 | 
						||
| 
								 | 
							
									data, err := db.ListTables()
							 | 
						||
| 
								 | 
							
									if err != nil {
							 | 
						||
| 
								 | 
							
										log.Error().Msg(err.Error())
							 | 
						||
| 
								 | 
							
										s.Data["json"] = map[string]string{"error": err.Error()}
							 | 
						||
| 
								 | 
							
										s.Ctx.Output.SetStatus(http.StatusInternalServerError)
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									s.Data["json"] = data
							 | 
						||
| 
								 | 
							
									s.ServeJSON()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									db.Close()
							 | 
						||
| 
								 | 
							
								}
							 |