| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package controllers
- import (
- "encoding/json"
- "io"
- "net/http"
- "pmail/dto"
- "pmail/dto/response"
- "pmail/services/setup"
- )
- func Proxy(w http.ResponseWriter, r *http.Request) {
- w.Write([]byte("proxy"))
- }
- func Setup(ctx *dto.Context, w http.ResponseWriter, req *http.Request) {
- reqBytes, err := io.ReadAll(req.Body)
- if err != nil {
- response.NewSuccessResponse("").FPrint(w)
- return
- }
- var reqData map[string]string
- err = json.Unmarshal(reqBytes, &reqData)
- if err != nil {
- response.NewSuccessResponse("").FPrint(w)
- return
- }
- if reqData["step"] == "database" && reqData["action"] == "get" {
- dbType, dbDSN, err := setup.GetDatabaseSettings()
- if err != nil {
- response.NewErrorResponse(response.ServerError, err.Error(), "")
- }
- response.NewSuccessResponse(map[string]string{
- "db_type": dbType,
- "db_dsn": dbDSN,
- }).FPrint(w)
- return
- }
- if reqData["step"] == "database" && reqData["action"] == "set" {
- err := setup.SetDatabaseSettings(reqData["db_type"], reqData["db_dsn"])
- if err != nil {
- response.NewErrorResponse(response.ServerError, err.Error(), "")
- }
- response.NewSuccessResponse("Succ").FPrint(w)
- return
- }
- if reqData["step"] == "domain" && reqData["action"] == "get" {
- smtpDomain, webDomain, err := setup.GetDomainSettings()
- if err != nil {
- response.NewErrorResponse(response.ServerError, err.Error(), "")
- }
- response.NewSuccessResponse(map[string]string{
- "smtp_domain": smtpDomain,
- "web_domain": webDomain,
- }).FPrint(w)
- return
- }
- if reqData["step"] == "domain" && reqData["action"] == "set" {
- err := setup.SetDomainSettings(reqData["smtp_domain"], reqData["web_domain"])
- if err != nil {
- response.NewErrorResponse(response.ServerError, err.Error(), "")
- }
- response.NewSuccessResponse("Succ").FPrint(w)
- return
- }
- if reqData["step"] == "dns" && reqData["action"] == "get" {
- dnsInfos, err := setup.GetDNSSettings(ctx)
- if err != nil {
- response.NewErrorResponse(response.ServerError, err.Error(), "")
- }
- response.NewSuccessResponse(dnsInfos).FPrint(w)
- return
- }
- if reqData["step"] == "ssl" && reqData["action"] == "get" {
- err := setup.GenSSL()
- if err != nil {
- response.NewErrorResponse(response.ServerError, err.Error(), "")
- }
- response.NewSuccessResponse("").FPrint(w)
- return
- }
- }
|