76a0f6f70afb7af83fe6f8a23e37fae15943e71c
1 from mygpo
.core
.models
import SanitizingRule
2 from mygpo
.cache
import cache_result
3 from mygpo
.db
.couchdb
import get_main_database
4 from mygpo
.db
import QueryParameterMissing
5 from mygpo
.db
.couchdb
.utils
import multi_request_view
8 class SanitizingRuleStub(object):
12 @cache_result(timeout
=60*60)
13 def sanitizingrules_by_obj_type(obj_type
):
16 raise QueryParameterMissing('obj_type')
18 r
= SanitizingRule
.view('sanitizing_rules/by_target',
20 startkey
= [obj_type
, None],
21 endkey
= [obj_type
, {}],
24 return map(_wrap_rule
, r
)
27 obj
= SanitizingRuleStub()
29 obj
.applies_to
= list(rule
.applies_to
)
30 obj
.search
= rule
.search
31 obj
.replace
= rule
.replace
32 obj
.priority
= rule
.priority
33 obj
.description
= rule
.description
37 @cache_result(timeout
=60*60)
38 def sanitizingrule_for_slug(slug
):
41 raise QueryParameterMissing('slug')
43 r
= SanitizingRule
.view('sanitizing_rules/by_slug',
48 return r
.one() if r
else None
51 def missing_slug_count(doc_type
, start
, end
):
54 raise QueryParameterMissing('doc_type')
57 raise QueryParameterMissing('start')
60 raise QueryParameterMissing('end')
63 db
= get_main_database()
64 res
= db
.view('slugs/missing',
65 startkey
= [doc_type
] + end
,
66 endkey
= [doc_type
] + start
,
72 return res
.first()['value'] if res
else 0
75 def missing_slugs(doc_type
, start
, end
, wrapper
, **kwargs
):
78 raise QueryParameterMissing('doc_type')
81 raise QueryParameterMissing('start')
84 raise QueryParameterMissing('end')
87 db
= get_main_database()
88 return multi_request_view(db
, 'slugs/missing',
89 startkey
= [doc_type
] + end
,
90 endkey
= [doc_type
] + start
,