in api/internal/handler/ssl/ssl.go [170:216]
func (h *Handler) List(c droplet.Context) (interface{}, error) {
input := c.Input().(*ListInput)
ret, err := h.sslStore.List(c.Context(), store.ListInput{
Predicate: func(obj interface{}) bool {
if input.SNI != "" {
if strings.Contains(obj.(*entity.SSL).Sni, input.SNI) {
return true
}
for _, str := range obj.(*entity.SSL).Snis {
result := strings.Contains(str, input.SNI)
if result {
return true
}
}
return false
}
return true
},
PageSize: input.PageSize,
PageNumber: input.PageNumber,
})
if err != nil {
return nil, err
}
//format respond
var list []interface{}
for _, item := range ret.Rows {
ssl := &entity.SSL{}
_ = utils.ObjectClone(item, ssl)
x509_validity, _ := x509CertValidity(ssl.Cert)
if x509_validity != nil {
ssl.ValidityStart = x509_validity.NotBefore
ssl.ValidityEnd = x509_validity.NotAfter
}
ssl.Key = ""
ssl.Keys = nil
list = append(list, ssl)
}
if list == nil {
list = []interface{}{}
}
ret.Rows = list
return ret, nil
}