diff --git a/admin/src/graphql/getPendingCreations.js b/admin/src/graphql/getPendingCreations.js index c387c368e..f359c79db 100644 --- a/admin/src/graphql/getPendingCreations.js +++ b/admin/src/graphql/getPendingCreations.js @@ -10,6 +10,7 @@ export const getPendingCreations = gql` note date moderator + creation } } ` diff --git a/admin/src/pages/CreationConfirm.vue b/admin/src/pages/CreationConfirm.vue index 5e5078283..660436d6c 100644 --- a/admin/src/pages/CreationConfirm.vue +++ b/admin/src/pages/CreationConfirm.vue @@ -31,98 +31,25 @@ export default { { key: 'firstName', label: 'Vorname' }, { key: 'lastName', label: 'Nachname' }, { - key: 'creation_gdd', + key: 'amount', label: 'Schöpfung', formatter: (value) => { return value + ' GDD' }, }, - { key: 'text', label: 'Text' }, + { key: 'note', label: 'Text' }, { - key: 'creation_date', + key: 'date', label: 'Datum', formatter: (value) => { - return value.long + return this.$moment(value).format('ll') }, }, - { key: 'creation_moderator', label: 'Moderator' }, + { key: 'moderator', label: 'Moderator' }, { key: 'edit_creation', label: 'ändern' }, { key: 'confirm', label: 'speichern' }, ], - confirmResult: [ - { - id: 1, - email: 'dickerson@web.de', - firstName: 'Dickerson', - lastName: 'Macdonald', - creation: '[450,200,700]', - creation_gdd: '1000', - text: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam ', - - creation_date: { - short: 'November', - long: '22/11/2021', - }, - creation_moderator: 'Manuela Gast', - }, - { - id: 2, - email: 'larsen@woob.de', - firstName: 'Larsen', - lastName: 'Shaw', - creation: '[300,200,1000]', - creation_gdd: '1000', - text: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam ', - - creation_date: { - short: 'November', - long: '03/11/2021', - }, - creation_moderator: 'Manuela Gast', - }, - { - id: 3, - email: 'geneva@tete.de', - firstName: 'Geneva', - lastName: 'Wilson', - creation: '[350,200,900]', - creation_gdd: '1000', - text: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam', - creation_date: { - short: 'September', - long: '27/09/2021', - }, - creation_moderator: 'Manuela Gast', - }, - { - id: 4, - email: 'viewrter@asdfvb.com', - firstName: 'Soledare', - lastName: 'Takker', - creation: '[100,400,800]', - creation_gdd: '500', - text: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo ', - creation_date: { - short: 'Oktober', - long: '12/10/2021', - }, - creation_moderator: 'Evelyn Roller', - }, - { - id: 5, - email: 'dickerson@web.de', - firstName: 'Dickerson', - lastName: 'Macdonald', - creation: '[100,400,800]', - creation_gdd: '200', - text: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At', - creation_date: { - short: 'September', - long: '05/09/2021', - }, - creation_moderator: 'Manuela Gast', - }, - ], + confirmResult: [], } }, @@ -141,20 +68,21 @@ export default { this.$store.commit('openCreationsMinus', 1) } }, - getPendingCreations() { + async getPendingCreations() { this.$apollo .query({ query: getPendingCreations, }) .then((result) => { - console.log('getPendingCreations.Result', result) + this.confirmResult = result.data.getPendingCreations + }) + .catch((error) => { + this.$toasted.error(error.message) }) - .catch() }, }, - created() { - this.getPendingCreations() - this.$store.commit('resetOpenCreations') + async created() { + await this.getPendingCreations() this.$store.commit('openCreationsPlus', Object.keys(this.confirmResult).length) }, } diff --git a/backend/src/graphql/model/PendingCreation.ts b/backend/src/graphql/model/PendingCreation.ts index 56bbe6d27..aa12bd94b 100644 --- a/backend/src/graphql/model/PendingCreation.ts +++ b/backend/src/graphql/model/PendingCreation.ts @@ -28,4 +28,7 @@ export class PendingCreation { @Field(() => Number) moderator: number + + @Field(() => [Number]) + creation: number[] } diff --git a/backend/src/graphql/resolver/AdminResolver.ts b/backend/src/graphql/resolver/AdminResolver.ts index 8dd0293ce..3c960b0fa 100644 --- a/backend/src/graphql/resolver/AdminResolver.ts +++ b/backend/src/graphql/resolver/AdminResolver.ts @@ -16,19 +16,19 @@ export class AdminResolver { @Authorized([RIGHTS.SEARCH_USERS]) @Query(() => [UserAdmin]) async searchUsers(@Arg('searchText') searchText: string): Promise { - const loginUserRepository = getCustomRepository(LoginUserRepository) - const loginUsers = await loginUserRepository.findBySearchCriteria(searchText) - const users = await Promise.all( - loginUsers.map(async (loginUser) => { - const user = new UserAdmin() - user.firstName = loginUser.firstName - user.lastName = loginUser.lastName - user.email = loginUser.email - user.creation = await getUserCreations(loginUser.id) - return user + const userRepository = getCustomRepository(UserRepository) + const users = await userRepository.findBySearchCriteria(searchText) + const adminUsers = await Promise.all( + users.map(async (user) => { + const adminUser = new UserAdmin() + adminUser.firstName = user.firstName + adminUser.lastName = user.lastName + adminUser.email = user.email + adminUser.creation = await getUserCreations(user.id) + return adminUser }), ) - return users + return adminUsers } @Query(() => [Number]) @@ -38,6 +38,7 @@ export class AdminResolver { const userRepository = getCustomRepository(UserRepository) const user = await userRepository.findByEmail(email) + console.log('User', user) const creations = await getUserCreations(user.id) const creationDateObj = new Date(creationDate) if (isCreationValid(creations, amount, creationDateObj)) { @@ -70,6 +71,7 @@ export class AdminResolver { firstName: user.firstName, lastName: user.lastName, email: user.email, + creation: await getUserCreations(user.id), } return newPendingCreation diff --git a/backend/src/typeorm/repository/User.ts b/backend/src/typeorm/repository/User.ts index e127c179c..cf67c837b 100644 --- a/backend/src/typeorm/repository/User.ts +++ b/backend/src/typeorm/repository/User.ts @@ -30,4 +30,17 @@ export class UserRepository extends Repository { }) return usersIndiced } + + async findBySearchCriteria(searchCriteria: string): Promise { + return await this.createQueryBuilder('user') + .where( + 'user.firstName like :name or user.lastName like :lastName or user.email like :email', + { + name: `%${searchCriteria}%`, + lastName: `%${searchCriteria}%`, + email: `%${searchCriteria}%`, + }, + ) + .getMany() + } }