github.com/kyleu/dbaudit@v0.0.2-0.20240321155047-ff2f2c940496/app/controller/parse.go (about)

     1  package controller
     2  
     3  import (
     4  	"net/http"
     5  
     6  	"github.com/kyleu/dbaudit/app"
     7  	"github.com/kyleu/dbaudit/app/controller/cutil"
     8  	"github.com/kyleu/dbaudit/views/vparse"
     9  )
    10  
    11  func ParseForm(w http.ResponseWriter, r *http.Request) {
    12  	Act("parse.form", w, r, func(as *app.State, ps *cutil.PageState) (string, error) {
    13  		return Render(w, r, as, &vparse.SQLServer{Path: "/tmp/*.sqlaudit", Task: "testbed", Limit: 10}, ps)
    14  	})
    15  }
    16  
    17  func Parse(w http.ResponseWriter, r *http.Request) {
    18  	Act("parse", w, r, func(as *app.State, ps *cutil.PageState) (string, error) {
    19  		frm, err := cutil.ParseForm(r, ps.RequestBody)
    20  		if err != nil {
    21  			return "", err
    22  		}
    23  
    24  		path := frm.GetStringOpt("path")
    25  		task := frm.GetStringOpt("task")
    26  		limit := frm.GetIntOpt("limit")
    27  
    28  		res, err := as.Services.Parse.Testbed(ps.Context, path, limit, ps.Logger)
    29  		if err != nil {
    30  			return "", err
    31  		}
    32  
    33  		return Render(w, r, as, &vparse.SQLServer{Path: path, Task: task, Limit: limit, Result: res}, ps)
    34  	})
    35  }