MCPcopy
hub / github.com/bettercap/bettercap / ViewSelectorFor

Function ViewSelectorFor

modules/utils/view_selector.go:34–57  ·  view source on GitHub ↗
(m *session.SessionModule, prefix string, sortFields []string, defExpression string)

Source from the content-addressed store, hash-verified

32}
33
34func ViewSelectorFor(m *session.SessionModule, prefix string, sortFields []string, defExpression string) *ViewSelector {
35 parser := "(" + strings.Join(sortFields, "|") + ") (desc|asc)"
36 s := &ViewSelector{
37 owner: m,
38 filterName: prefix + ".filter",
39 sortName: prefix + ".sort",
40 sortParser: parser,
41 sortParse: regexp.MustCompile(parser),
42 limitName: prefix + ".limit",
43 }
44
45 m.AddParam(session.NewStringParameter(s.filterName, "", "", "Defines a regular expression filter for "+prefix))
46 m.AddParam(session.NewStringParameter(
47 s.sortName,
48 defExpression,
49 s.sortParser,
50 "Defines sorting field ("+strings.Join(sortFields, ", ")+") and direction (asc or desc) for "+prefix))
51
52 m.AddParam(session.NewIntParameter(s.limitName, "0", "Defines limit for "+prefix))
53
54 s.parseSorting()
55
56 return s
57}
58
59func (s *ViewSelector) parseFilter() (err error) {
60 if err, s.Filter = s.owner.StringParam(s.filterName); err != nil {

Callers 15

NewDiscoveryFunction · 0.92
TestDoSelectionFunction · 0.92
TestDoFilterFunction · 0.92
NewHIDReconFunction · 0.92
NewBLEReconFunction · 0.92
NewWiFiModuleFunction · 0.92
TestViewSelectorForFunction · 0.85
TestParseFilterFunction · 0.85
TestParseSortingFunction · 0.85
TestUpdateFunction · 0.85
TestFilterCachingFunction · 0.85
TestSortParserRegexFunction · 0.85

Calls 4

parseSortingMethod · 0.95
NewStringParameterFunction · 0.92
NewIntParameterFunction · 0.92
AddParamMethod · 0.80

Tested by 11

TestDoSelectionFunction · 0.74
TestDoFilterFunction · 0.74
TestViewSelectorForFunction · 0.68
TestParseFilterFunction · 0.68
TestParseSortingFunction · 0.68
TestUpdateFunction · 0.68
TestFilterCachingFunction · 0.68
TestSortParserRegexFunction · 0.68
BenchmarkParseFilterFunction · 0.68
BenchmarkParseSortingFunction · 0.68
BenchmarkUpdateFunction · 0.68