mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Refactor to have filters GQL object and input for usererSearch, a start
This commit is contained in:
parent
946280a6db
commit
0f8ffb5860
@ -12,7 +12,7 @@ export const searchUsers = gql`
|
||||
searchText: $searchText
|
||||
currentPage: $currentPage
|
||||
pageSize: $pageSize
|
||||
filterByActivated: $filterByActivated
|
||||
filterByActivated: $filterByActivated # Wolle: put in 'filters' object?
|
||||
filterByDeleted: $filterByDeleted
|
||||
) {
|
||||
userCount
|
||||
|
||||
@ -82,7 +82,7 @@ describe('UserSearch', () => {
|
||||
searchText: '',
|
||||
currentPage: 1,
|
||||
pageSize: 25,
|
||||
filterByActivated: null,
|
||||
filterByActivated: null, // Wolle: put in 'filters' object?
|
||||
filterByDeleted: null,
|
||||
},
|
||||
}),
|
||||
@ -101,7 +101,7 @@ describe('UserSearch', () => {
|
||||
searchText: '',
|
||||
currentPage: 1,
|
||||
pageSize: 25,
|
||||
filterByActivated: false,
|
||||
filterByActivated: false, // Wolle: put in 'filters' object?
|
||||
filterByDeleted: null,
|
||||
},
|
||||
}),
|
||||
@ -121,7 +121,7 @@ describe('UserSearch', () => {
|
||||
searchText: '',
|
||||
currentPage: 1,
|
||||
pageSize: 25,
|
||||
filterByActivated: null,
|
||||
filterByActivated: null, // Wolle: put in 'filters' object?
|
||||
filterByDeleted: true,
|
||||
},
|
||||
}),
|
||||
@ -141,7 +141,7 @@ describe('UserSearch', () => {
|
||||
searchText: '',
|
||||
currentPage: 2,
|
||||
pageSize: 25,
|
||||
filterByActivated: null,
|
||||
filterByActivated: null, // Wolle: put in 'filters' object?
|
||||
filterByDeleted: null,
|
||||
},
|
||||
}),
|
||||
@ -161,7 +161,7 @@ describe('UserSearch', () => {
|
||||
searchText: 'search string',
|
||||
currentPage: 1,
|
||||
pageSize: 25,
|
||||
filterByActivated: null,
|
||||
filterByActivated: null, // Wolle: put in 'filters' object?
|
||||
filterByDeleted: null,
|
||||
},
|
||||
}),
|
||||
@ -178,7 +178,7 @@ describe('UserSearch', () => {
|
||||
searchText: '',
|
||||
currentPage: 1,
|
||||
pageSize: 25,
|
||||
filterByActivated: null,
|
||||
filterByActivated: null, // Wolle: put in 'filters' object?
|
||||
filterByDeleted: null,
|
||||
},
|
||||
}),
|
||||
|
||||
@ -97,7 +97,7 @@ export default {
|
||||
searchText: this.criteria,
|
||||
currentPage: this.currentPage,
|
||||
pageSize: this.perPage,
|
||||
filterByActivated: this.filterByActivated,
|
||||
filterByActivated: this.filterByActivated, // Wolle: put in 'filters' object?
|
||||
filterByDeleted: this.filterByDeleted,
|
||||
},
|
||||
fetchPolicy: 'no-cache',
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import { ArgsType, Field, Int } from 'type-graphql'
|
||||
import { Args, ArgsType, Field, Int } from 'type-graphql'
|
||||
import SearchUsersFilters from '@arg/SearchUsersFilters'
|
||||
|
||||
@ArgsType()
|
||||
export default class SearchUsersArgs {
|
||||
@ -11,9 +12,13 @@ export default class SearchUsersArgs {
|
||||
@Field(() => Int, { nullable: true })
|
||||
pageSize?: number
|
||||
|
||||
@Field(() => Boolean, { nullable: true })
|
||||
filterByActivated?: boolean | null
|
||||
// Wolle: @Field(() => Boolean, { nullable: true })
|
||||
// filterByActivated?: boolean | null
|
||||
|
||||
@Field(() => Boolean, { nullable: true })
|
||||
filterByDeleted?: boolean | null
|
||||
// Wolle: @Field(() => Boolean, { nullable: true })
|
||||
// filterByDeleted?: boolean | null
|
||||
|
||||
// Wolle: shall this be nullable?
|
||||
@Field()
|
||||
filters: SearchUsersFilters
|
||||
}
|
||||
|
||||
13
backend/src/graphql/arg/SearchUsersFilters.ts
Normal file
13
backend/src/graphql/arg/SearchUsersFilters.ts
Normal file
@ -0,0 +1,13 @@
|
||||
// Wolle: import { ArgsType, Field, InputType } from 'type-graphql'
|
||||
import { Field, InputType, ObjectType } from 'type-graphql'
|
||||
|
||||
@ObjectType()
|
||||
@InputType('SearchUsersFiltersInput')
|
||||
// Wolle: @ArgsType()
|
||||
export default class SearchUsersFilters {
|
||||
@Field(() => Boolean, { nullable: true, defaultValue: null })
|
||||
filterByActivated?: boolean | null
|
||||
|
||||
@Field(() => Boolean, { nullable: true, defaultValue: null })
|
||||
filterByDeleted?: boolean | null
|
||||
}
|
||||
@ -56,19 +56,27 @@ export class AdminResolver {
|
||||
searchText,
|
||||
currentPage = 1,
|
||||
pageSize = 25,
|
||||
filterByActivated = null,
|
||||
filterByDeleted = null,
|
||||
// Wolle: filters = {
|
||||
// filterByActivated: null,
|
||||
// filterByDeleted: null,
|
||||
// },
|
||||
filters = {
|
||||
filterByActivated: null,
|
||||
filterByDeleted: null,
|
||||
},
|
||||
}: SearchUsersArgs,
|
||||
): Promise<SearchUsersResult> {
|
||||
// Wolle
|
||||
console.log('filters: ', filters)
|
||||
const userRepository = getCustomRepository(UserRepository)
|
||||
|
||||
const filterCriteria: ObjectLiteral[] = []
|
||||
if (filterByActivated !== null) {
|
||||
filterCriteria.push({ emailChecked: filterByActivated })
|
||||
if (filters.filterByActivated !== null) {
|
||||
filterCriteria.push({ emailChecked: filters.filterByActivated })
|
||||
}
|
||||
|
||||
if (filterByDeleted !== null) {
|
||||
filterCriteria.push({ deletedAt: filterByDeleted ? Not(IsNull()) : IsNull() })
|
||||
if (filters.filterByDeleted !== null) {
|
||||
filterCriteria.push({ deletedAt: filters.filterByDeleted ? Not(IsNull()) : IsNull() })
|
||||
}
|
||||
|
||||
const userFields = ['id', 'firstName', 'lastName', 'email', 'emailChecked', 'deletedAt']
|
||||
|
||||
@ -107,6 +107,39 @@ export const unDeleteUser = gql`
|
||||
}
|
||||
`
|
||||
|
||||
export const searchUsers = gql`
|
||||
query (
|
||||
$searchText: String!
|
||||
$currentPage: Int
|
||||
$pageSize: Int
|
||||
# Wolle $filterByActivated: Boolean
|
||||
# $filterByDeleted: Boolean
|
||||
$filters: SearchUsersFiltersInput!
|
||||
) {
|
||||
searchUsers(
|
||||
searchText: $searchText
|
||||
currentPage: $currentPage
|
||||
pageSize: $pageSize
|
||||
# Wolle filterByActivated: $filterByActivated # Wolle: put in 'filters' object?
|
||||
# filterByDeleted: $filterByDeleted
|
||||
filters: $filters
|
||||
) {
|
||||
userCount
|
||||
userList {
|
||||
userId
|
||||
firstName
|
||||
lastName
|
||||
email
|
||||
creation
|
||||
emailChecked
|
||||
hasElopage
|
||||
emailConfirmationSend
|
||||
deletedAt
|
||||
}
|
||||
}
|
||||
}
|
||||
`
|
||||
|
||||
export const createPendingCreations = gql`
|
||||
mutation ($pendingCreations: [CreatePendingCreationArgs!]!) {
|
||||
createPendingCreations(pendingCreations: $pendingCreations) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user