mirror of https://github.com/jlelse/GoBlog
Add option to query webmentions with source (using like)
This commit is contained in:
parent
bc1a978793
commit
0dd256579a
|
@ -129,6 +129,7 @@ func reverifyWebmention(id int) error {
|
||||||
type webmentionsRequestConfig struct {
|
type webmentionsRequestConfig struct {
|
||||||
target string
|
target string
|
||||||
status webmentionStatus
|
status webmentionStatus
|
||||||
|
sourcelike string
|
||||||
id int
|
id int
|
||||||
asc bool
|
asc bool
|
||||||
offset, limit int
|
offset, limit int
|
||||||
|
@ -138,17 +139,21 @@ func buildWebmentionsQuery(config *webmentionsRequestConfig) (query string, args
|
||||||
args = []interface{}{}
|
args = []interface{}{}
|
||||||
filter := ""
|
filter := ""
|
||||||
if config != nil {
|
if config != nil {
|
||||||
if config.target != "" && config.status != "" {
|
filter = "where 1 = 1"
|
||||||
filter = "where target = @target and status = @status"
|
if config.target != "" {
|
||||||
args = append(args, sql.Named("target", unescapedPath(config.target)), sql.Named("status", config.status))
|
filter += " and target = @target"
|
||||||
} else if config.target != "" {
|
|
||||||
filter = "where target = @target"
|
|
||||||
args = append(args, sql.Named("target", config.target))
|
args = append(args, sql.Named("target", config.target))
|
||||||
} else if config.status != "" {
|
}
|
||||||
filter = "where status = @status"
|
if config.status != "" {
|
||||||
|
filter += " and status = @status"
|
||||||
args = append(args, sql.Named("status", config.status))
|
args = append(args, sql.Named("status", config.status))
|
||||||
} else if config.id != 0 {
|
}
|
||||||
filter = "where id = @id"
|
if config.sourcelike != "" {
|
||||||
|
filter += " and source like @sourcelike"
|
||||||
|
args = append(args, sql.Named("sourcelike", "%"+config.sourcelike+"%"))
|
||||||
|
}
|
||||||
|
if config.id != 0 {
|
||||||
|
filter += " and id = @id"
|
||||||
args = append(args, sql.Named("id", config.id))
|
args = append(args, sql.Named("id", config.id))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,11 @@ func webmentionAdmin(w http.ResponseWriter, r *http.Request) {
|
||||||
case webmentionStatusApproved:
|
case webmentionStatusApproved:
|
||||||
status = webmentionStatusApproved
|
status = webmentionStatusApproved
|
||||||
}
|
}
|
||||||
p := paginator.New(&webmentionPaginationAdapter{config: &webmentionsRequestConfig{status: status}}, 10)
|
sourcelike := r.URL.Query().Get("source")
|
||||||
|
p := paginator.New(&webmentionPaginationAdapter{config: &webmentionsRequestConfig{
|
||||||
|
status: status,
|
||||||
|
sourcelike: sourcelike,
|
||||||
|
}}, 10)
|
||||||
p.SetPage(pageNo)
|
p.SetPage(pageNo)
|
||||||
var mentions []*mention
|
var mentions []*mention
|
||||||
err := p.Results(&mentions)
|
err := p.Results(&mentions)
|
||||||
|
@ -80,6 +84,9 @@ func webmentionAdmin(w http.ResponseWriter, r *http.Request) {
|
||||||
if status != "" {
|
if status != "" {
|
||||||
params.Add("status", string(status))
|
params.Add("status", string(status))
|
||||||
}
|
}
|
||||||
|
if sourcelike != "" {
|
||||||
|
params.Add("source", sourcelike)
|
||||||
|
}
|
||||||
if len(params) > 0 {
|
if len(params) > 0 {
|
||||||
query = "?" + params.Encode()
|
query = "?" + params.Encode()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue