mirror of https://github.com/allinssl/allinssl
acme账户相关接口
parent
884c8407b5
commit
9155f47ec9
|
@ -0,0 +1,127 @@
|
|||
package api
|
||||
|
||||
import (
|
||||
"ALLinSSL/backend/internal/cert/apply"
|
||||
"ALLinSSL/backend/public"
|
||||
"github.com/gin-gonic/gin"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func AddAccount(c *gin.Context) {
|
||||
var form struct {
|
||||
Email string `form:"email"`
|
||||
CA string `form:"ca"`
|
||||
Kid string `form:"Kid"`
|
||||
HmacEncoded string `form:"HmacEncoded"`
|
||||
CADirURL string `form:"CADirURL"`
|
||||
}
|
||||
err := c.Bind(&form)
|
||||
if err != nil {
|
||||
public.FailMsg(c, err.Error())
|
||||
return
|
||||
}
|
||||
form.Email = strings.TrimSpace(form.Email)
|
||||
if form.Email == "" {
|
||||
public.FailMsg(c, "邮件不能为空")
|
||||
return
|
||||
}
|
||||
if form.CA == "" {
|
||||
public.FailMsg(c, "CA不能为空")
|
||||
return
|
||||
}
|
||||
err = apply.AddAccount(form.Email, form.CA, form.Kid, form.HmacEncoded, form.CADirURL)
|
||||
if err != nil {
|
||||
public.FailMsg(c, err.Error())
|
||||
return
|
||||
}
|
||||
public.SuccessMsg(c, "添加成功")
|
||||
return
|
||||
}
|
||||
|
||||
func DelAccount(c *gin.Context) {
|
||||
var form struct {
|
||||
ID string `form:"id"`
|
||||
}
|
||||
err := c.Bind(&form)
|
||||
if err != nil {
|
||||
public.FailMsg(c, err.Error())
|
||||
return
|
||||
}
|
||||
form.ID = strings.TrimSpace(form.ID)
|
||||
if form.ID == "" {
|
||||
public.FailMsg(c, "ID不能为空")
|
||||
return
|
||||
}
|
||||
|
||||
err = apply.DelAccount(form.ID)
|
||||
if err != nil {
|
||||
public.FailMsg(c, err.Error())
|
||||
return
|
||||
}
|
||||
public.SuccessMsg(c, "删除成功")
|
||||
return
|
||||
}
|
||||
|
||||
func UpdateAccount(c *gin.Context) {
|
||||
var form struct {
|
||||
ID string `form:"id"`
|
||||
Email string `form:"email"`
|
||||
CA string `form:"ca"`
|
||||
Kid string `form:"Kid"`
|
||||
HmacEncoded string `form:"HmacEncoded"`
|
||||
CADirURL string `form:"CADirURL"`
|
||||
}
|
||||
err := c.Bind(&form)
|
||||
if err != nil {
|
||||
public.FailMsg(c, err.Error())
|
||||
return
|
||||
}
|
||||
form.ID = strings.TrimSpace(form.ID)
|
||||
if form.ID == "" {
|
||||
public.FailMsg(c, "ID不能为空")
|
||||
return
|
||||
}
|
||||
form.Email = strings.TrimSpace(form.Email)
|
||||
if form.Email == "" {
|
||||
public.FailMsg(c, "邮件不能为空")
|
||||
return
|
||||
}
|
||||
if form.CA == "" {
|
||||
public.FailMsg(c, "CA不能为空")
|
||||
return
|
||||
}
|
||||
|
||||
err = apply.UpdateAccount(form.ID, form.Email, form.CA, form.Kid, form.HmacEncoded, form.CADirURL)
|
||||
if err != nil {
|
||||
public.FailMsg(c, err.Error())
|
||||
return
|
||||
}
|
||||
public.SuccessMsg(c, "更新成功")
|
||||
return
|
||||
}
|
||||
|
||||
func GetAccountList(c *gin.Context) {
|
||||
var form struct {
|
||||
Page int64 `form:"p"`
|
||||
Limit int64 `form:"limit"`
|
||||
CA string `form:"ca"`
|
||||
Search string `form:"search"`
|
||||
}
|
||||
err := c.Bind(&form)
|
||||
if err != nil {
|
||||
public.FailMsg(c, err.Error())
|
||||
return
|
||||
}
|
||||
if form.Page <= 0 {
|
||||
form.Page = 1
|
||||
}
|
||||
if form.Limit <= 0 {
|
||||
form.Limit = 10
|
||||
}
|
||||
accounts, total, err := apply.GetAccountList(form.Search, form.CA, form.Page, form.Limit)
|
||||
if err != nil {
|
||||
public.FailMsg(c, err.Error())
|
||||
return
|
||||
}
|
||||
public.SuccessData(c, accounts, total)
|
||||
}
|
|
@ -164,7 +164,7 @@ func UpdateAccount(id, email, ca, Kid, HmacEncoded, CADirURL string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func DeleteAccount(id string) error {
|
||||
func DelAccount(id string) error {
|
||||
db, err := GetSqlite()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to get sqlite: %w", err)
|
||||
|
@ -176,10 +176,10 @@ func DeleteAccount(id string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func GetAccountList(search, ca string, p, limit int64) ([]map[string]interface{}, error) {
|
||||
func GetAccountList(search, ca string, p, limit int64) ([]map[string]interface{}, int, error) {
|
||||
db, err := GetSqlite()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to get sqlite: %w", err)
|
||||
return nil, 0, fmt.Errorf("failed to get sqlite: %w", err)
|
||||
}
|
||||
whereSql := "1=1"
|
||||
var whereArgs []any
|
||||
|
@ -203,5 +203,10 @@ func GetAccountList(search, ca string, p, limit int64) ([]map[string]interface{}
|
|||
whereArgs = append(whereArgs, ca)
|
||||
}
|
||||
}
|
||||
return db.Where(whereSql, whereArgs).Limit(limits).Select()
|
||||
count, err := db.Where(whereSql, whereArgs).Count()
|
||||
data, err := db.Where(whereSql, whereArgs).Limit(limits).Select()
|
||||
if err != nil {
|
||||
return nil, 0, fmt.Errorf("failed to get account list: %w", err)
|
||||
}
|
||||
return data, int(count), nil
|
||||
}
|
||||
|
|
|
@ -52,6 +52,14 @@ func Register(r *gin.Engine) {
|
|||
access.POST("/upd_eab", api.UpdEAB)
|
||||
access.POST("/get_all_eab", api.GetAllEAB)
|
||||
}
|
||||
// acme账户
|
||||
acmeAccount := v1.Group("/acme_account")
|
||||
{
|
||||
acmeAccount.POST("/get_list", api.GetAccountList)
|
||||
acmeAccount.POST("/add_account", api.AddAccount)
|
||||
acmeAccount.POST("/del_account", api.DelAccount)
|
||||
acmeAccount.POST("/upd_account", api.UpdateAccount)
|
||||
}
|
||||
cert := v1.Group("/cert")
|
||||
{
|
||||
cert.POST("/get_list", api.GetCertList)
|
||||
|
|
Loading…
Reference in New Issue