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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func DeleteAccount(id string) error {
|
func DelAccount(id string) error {
|
||||||
db, err := GetSqlite()
|
db, err := GetSqlite()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to get sqlite: %w", err)
|
return fmt.Errorf("failed to get sqlite: %w", err)
|
||||||
|
@ -176,10 +176,10 @@ func DeleteAccount(id string) error {
|
||||||
return nil
|
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()
|
db, err := GetSqlite()
|
||||||
if err != nil {
|
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"
|
whereSql := "1=1"
|
||||||
var whereArgs []any
|
var whereArgs []any
|
||||||
|
@ -203,5 +203,10 @@ func GetAccountList(search, ca string, p, limit int64) ([]map[string]interface{}
|
||||||
whereArgs = append(whereArgs, ca)
|
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("/upd_eab", api.UpdEAB)
|
||||||
access.POST("/get_all_eab", api.GetAllEAB)
|
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 := v1.Group("/cert")
|
||||||
{
|
{
|
||||||
cert.POST("/get_list", api.GetCertList)
|
cert.POST("/get_list", api.GetCertList)
|
||||||
|
|
Loading…
Reference in New Issue