Skip to content

Commit 545e28a

Browse files
authored
filter query updates (#298)
1 parent 29a2b2b commit 545e28a

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

src/validation.ts

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,32 @@ import { isEmpty } from 'lodash';
22
import { GitHubQuery, ProjectQueryType, QueryType } from './types';
33

44
export const isValid = (query: GitHubQuery): boolean => {
5-
// The current requirement is that the query has a querytype
6-
// TODO: have each option implement a validation function
7-
if (query.queryType === QueryType.Projects) {
8-
if (isEmpty(query.options?.organization) && query.options?.kind === ProjectQueryType.ORG) {
5+
if (query.queryType === QueryType.Repositories) {
6+
if (isEmpty(query.owner)) {
7+
return false;
8+
}
9+
}
10+
if (
11+
query.queryType === QueryType.Commits ||
12+
query.queryType === QueryType.Contributors ||
13+
query.queryType === QueryType.Tags ||
14+
query.queryType === QueryType.Releases ||
15+
query.queryType === QueryType.Labels ||
16+
query.queryType === QueryType.Milestones ||
17+
query.queryType === QueryType.Vulnerabilities ||
18+
query.queryType === QueryType.Stargazers
19+
) {
20+
if (isEmpty(query.owner) || isEmpty(query.repository)) {
921
return false;
1022
}
23+
}
24+
if (query.queryType === QueryType.Projects) {
1125
if (isEmpty(query.options?.user) && query.options?.kind === ProjectQueryType.USER) {
1226
return false;
1327
}
28+
if (isEmpty(query.options?.organization)) {
29+
return false;
30+
}
1431
}
1532
return !!query.queryType;
1633
};

0 commit comments

Comments
 (0)