-
Notifications
You must be signed in to change notification settings - Fork 286
/
helpers.js
63 lines (53 loc) · 2.02 KB
/
helpers.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
const repoTypeSearchQueryMap = {
rpm: '(name ~ rpms) and (name !~ source rpm) and (name !~ debug rpm) and (content_type = yum)',
sourceRpm: '(name ~ source rpm) and (content_type = yum)',
debugRpm: '(name ~ debug rpm) and (content_type = yum)',
kickstart: 'content_type = kickstart',
ostree: 'content_type = ostree',
beta: 'name ~ beta',
};
const recommendedRepositorySetLables = [
'rhel-7-server-rpms',
'rhel-6-server-rpms',
'rhel-6-server-satellite-tools-6.3-rpms',
'rhel-server-rhscl-7-rpms',
'rhel-7-server-satellite-capsule-6.3-rpms',
'rhel-7-server-satellite-capsule-6.4-rpms',
'rhel-7-server-satellite-tools-6.3-rpms',
'rhel-6-server-satellite-tools-6.3-rpms',
'rhel-7-server-ansible-2.5-rpms',
'rhel-7-server-optional-rpms',
'rhel-7-server-extras-rpms',
'rhel-5-server-els-rpms',
'rhel-7-server-eus-rpms',
];
const createLablesQuery = lables =>
lables.map(label => `label = ${label}`).join(' or ');
const isRecommendedRepositorySet = ({ label }) => recommendedRepositorySetLables.includes(label);
export const normalizeRepositorySets = (data) => {
data.results.forEach((repositorySet) => {
/* eslint no-param-reassign: ["error", { "ignorePropertyModificationsFor": ["id"] }] */
repositorySet.id = parseInt(repositorySet.id, 10);
repositorySet.recommended = isRecommendedRepositorySet(repositorySet);
});
return data;
};
const maptToSearchQuery = (filter) => {
if (filter === 'other') {
const joined = Object.keys(repoTypeSearchQueryMap)
.map(k => repoTypeSearchQueryMap[k])
.map(q => `(${q})`)
.join(' or ');
return `not (${joined})`;
}
return repoTypeSearchQueryMap[filter];
};
export const repoTypeFilterToSearchQuery = filters => filters
.map(f => `(${maptToSearchQuery(f)})`)
.join(' or ');
export const joinSearchQueries = parts => parts
.filter(v => (v && v !== ''))
.map(v => `(${v})`)
.join(' and ');
export const recommendedRepositorySetsQuery = createLablesQuery(recommendedRepositorySetLables);
export default normalizeRepositorySets;