diff --git a/admin/package.json b/admin/package.json index 57711b8be..771e7991e 100644 --- a/admin/package.json +++ b/admin/package.json @@ -4,7 +4,7 @@ "main": "index.js", "author": "Moriz Wahl", "version": "1.8.3", - "license": "MIT", + "license": "Apache License 2.0", "private": false, "scripts": { "start": "node run/server.js", diff --git a/backend/log4js-config.json b/backend/log4js-config.json index 1c4b3fb6d..451da56ab 100644 --- a/backend/log4js-config.json +++ b/backend/log4js-config.json @@ -13,6 +13,14 @@ { "type": "dateFile", "filename": "../logs/backend/apollo.log", + "pattern": "%d{ISO8601} %p %c %m", + "keepFileExt" : true, + "fileNameSep" : "_" + }, + "backend": + { + "type": "dateFile", + "filename": "../logs/backend/backend.log", "pattern": "%d{ISO8601} %p %c %X{user} %f:%l %m", "keepFileExt" : true, "fileNameSep" : "_" @@ -31,24 +39,52 @@ "level": "error", "appender": "errorFile" }, - "out": + "out": { "type": "stdout", "layout": { "type": "pattern", "pattern": "%d{ISO8601} %p %c %X{user} %f:%l %m" } - - } + }, + "apolloOut": + { + "type": "stdout", + "layout": + { + "type": "pattern", "pattern": "%d{ISO8601} %p %c %m" + } + } }, - "categories": + "categories": { "default": { "appenders": [ "out", + "errors" + ], + "level": "debug", + "enableCallStack": true + }, + "apollo": + { + "appenders": + [ "apollo", + "apolloOut", + "errors" + ], + "level": "debug", + "enableCallStack": true + }, + "backend": + { + "appenders": + [ + "backend", + "out", "errors" ], "level": "debug", diff --git a/backend/package.json b/backend/package.json index 678e3578a..7bb404520 100644 --- a/backend/package.json +++ b/backend/package.json @@ -5,7 +5,7 @@ "main": "src/index.ts", "repository": "https://github.com/gradido/gradido/backend", "author": "Ulf Gebhardt", - "license": "MIT", + "license": "Apache License 2.0", "private": false, "scripts": { "build": "tsc --build", diff --git a/backend/src/config/index.test.ts b/backend/src/config/index.test.ts index 3c4c7865e..1dabf9292 100644 --- a/backend/src/config/index.test.ts +++ b/backend/src/config/index.test.ts @@ -3,7 +3,7 @@ import CONFIG from './index' describe('config/index', () => { describe('decay start block', () => { it('has the correct date set', () => { - expect(CONFIG.DECAY_START_TIME).toEqual(new Date('2021-05-13 17:46:31')) + expect(CONFIG.DECAY_START_TIME).toEqual(new Date('2021-05-13 17:46:31-0000')) }) }) }) diff --git a/backend/src/config/index.ts b/backend/src/config/index.ts index 559b8e9c5..28318ed6b 100644 --- a/backend/src/config/index.ts +++ b/backend/src/config/index.ts @@ -11,7 +11,7 @@ Decimal.set({ const constants = { DB_VERSION: '0036-unique_previous_in_transactions', - DECAY_START_TIME: new Date('2021-05-13 17:46:31'), // GMT+0 + DECAY_START_TIME: new Date('2021-05-13 17:46:31-0000'), // GMT+0 LOG4JS_CONFIG: 'log4js-config.json', // default log level on production should be info LOG_LEVEL: process.env.LOG_LEVEL || 'info', diff --git a/backend/src/graphql/arg/UpdateUserInfosArgs.ts b/backend/src/graphql/arg/UpdateUserInfosArgs.ts index d1e95ebef..81c07a329 100644 --- a/backend/src/graphql/arg/UpdateUserInfosArgs.ts +++ b/backend/src/graphql/arg/UpdateUserInfosArgs.ts @@ -19,7 +19,4 @@ export default class UpdateUserInfosArgs { @Field({ nullable: true }) passwordNew?: string - - @Field({ nullable: true }) - coinanimation?: boolean } diff --git a/backend/src/graphql/enum/Setting.ts b/backend/src/graphql/enum/Setting.ts deleted file mode 100644 index 8efeec72d..000000000 --- a/backend/src/graphql/enum/Setting.ts +++ /dev/null @@ -1,5 +0,0 @@ -enum Setting { - COIN_ANIMATION = 'coinanimation', -} - -export { Setting } diff --git a/backend/src/graphql/model/User.ts b/backend/src/graphql/model/User.ts index 4f577f60a..86c56312f 100644 --- a/backend/src/graphql/model/User.ts +++ b/backend/src/graphql/model/User.ts @@ -15,8 +15,6 @@ export class User { this.language = user.language this.publisherId = user.publisherId this.isAdmin = user.isAdmin - // TODO - this.coinanimation = null this.klickTipp = null this.hasElopage = null } @@ -61,11 +59,6 @@ export class User { @Field(() => Date, { nullable: true }) isAdmin: Date | null - // TODO this is a bit inconsistent with what we query from the database - // therefore all those fields are now nullable with default value null - @Field(() => Boolean, { nullable: true }) - coinanimation: boolean | null - @Field(() => KlickTipp, { nullable: true }) klickTipp: KlickTipp | null diff --git a/backend/src/graphql/resolver/UserResolver.test.ts b/backend/src/graphql/resolver/UserResolver.test.ts index 1afce832b..78b630834 100644 --- a/backend/src/graphql/resolver/UserResolver.test.ts +++ b/backend/src/graphql/resolver/UserResolver.test.ts @@ -344,7 +344,6 @@ describe('UserResolver', () => { expect.objectContaining({ data: { login: { - coinanimation: true, email: 'bibi@bloxberg.de', firstName: 'Bibi', hasElopage: false, @@ -479,7 +478,6 @@ describe('UserResolver', () => { firstName: 'Bibi', lastName: 'Bloxberg', language: 'de', - coinanimation: true, klickTipp: { newsletterState: false, }, diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index 7080ad68b..9b42d76b5 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -3,7 +3,7 @@ import { backendLogger as logger } from '@/server/logger' import { Context, getUser } from '@/server/context' import { Resolver, Query, Args, Arg, Authorized, Ctx, UseMiddleware, Mutation } from 'type-graphql' -import { getConnection, getCustomRepository } from '@dbTools/typeorm' +import { getConnection } from '@dbTools/typeorm' import CONFIG from '@/config' import { User } from '@model/User' import { User as DbUser } from '@entity/User' @@ -13,8 +13,6 @@ import CreateUserArgs from '@arg/CreateUserArgs' import UnsecureLoginArgs from '@arg/UnsecureLoginArgs' import UpdateUserInfosArgs from '@arg/UpdateUserInfosArgs' import { klicktippNewsletterStateMiddleware } from '@/middleware/klicktippMiddleware' -import { UserSettingRepository } from '@repository/UserSettingRepository' -import { Setting } from '@enum/Setting' import { OptInType } from '@enum/OptInType' import { LoginEmailOptIn } from '@entity/LoginEmailOptIn' import { sendResetPasswordEmail as sendResetPasswordEmailMailer } from '@/mailer/sendResetPasswordEmail' @@ -228,15 +226,6 @@ export class UserResolver { // Elopage Status & Stored PublisherId user.hasElopage = await this.hasElopage(context) - // coinAnimation - const userSettingRepository = getCustomRepository(UserSettingRepository) - const coinanimation = await userSettingRepository - .readBoolean(userEntity.id, Setting.COIN_ANIMATION) - .catch((error) => { - logger.error('error:', error) - throw new Error(error) - }) - user.coinanimation = coinanimation logger.debug(`verifyLogin... successful: ${user.firstName}.${user.lastName}, ${user.email}`) return user } @@ -294,15 +283,6 @@ export class UserResolver { DbUser.save(dbUser) } - // coinAnimation - const userSettingRepository = getCustomRepository(UserSettingRepository) - const coinanimation = await userSettingRepository - .readBoolean(dbUser.id, Setting.COIN_ANIMATION) - .catch((error) => { - throw new Error(error) - }) - user.coinanimation = coinanimation - context.setHeaders.push({ key: 'token', value: encode(dbUser.pubKey), @@ -598,12 +578,10 @@ export class UserResolver { @Mutation(() => Boolean) async updateUserInfos( @Args() - { firstName, lastName, language, password, passwordNew, coinanimation }: UpdateUserInfosArgs, + { firstName, lastName, language, password, passwordNew }: UpdateUserInfosArgs, @Ctx() context: Context, ): Promise { - logger.info( - `updateUserInfos(${firstName}, ${lastName}, ${language}, ***, ***, ${coinanimation})...`, - ) + logger.info(`updateUserInfos(${firstName}, ${lastName}, ${language}, ***, ***)...`) const userEntity = getUser(context) if (firstName) { @@ -655,15 +633,6 @@ export class UserResolver { await queryRunner.startTransaction('READ UNCOMMITTED') try { - if (coinanimation !== null && coinanimation !== undefined) { - queryRunner.manager - .getCustomRepository(UserSettingRepository) - .setOrUpdate(userEntity.id, Setting.COIN_ANIMATION, coinanimation.toString()) - .catch((error) => { - throw new Error('error saving coinanimation: ' + error) - }) - } - await queryRunner.manager.save(userEntity).catch((error) => { throw new Error('error saving user: ' + error) }) diff --git a/backend/src/seeds/graphql/mutations.ts b/backend/src/seeds/graphql/mutations.ts index 4598cbbe2..6e1fe9174 100644 --- a/backend/src/seeds/graphql/mutations.ts +++ b/backend/src/seeds/graphql/mutations.ts @@ -31,7 +31,6 @@ export const updateUserInfos = gql` $password: String $passwordNew: String $locale: String - $coinanimation: Boolean ) { updateUserInfos( firstName: $firstName @@ -39,7 +38,6 @@ export const updateUserInfos = gql` password: $password passwordNew: $passwordNew language: $locale - coinanimation: $coinanimation ) } ` diff --git a/backend/src/seeds/graphql/queries.ts b/backend/src/seeds/graphql/queries.ts index 82067c968..16b2b71ae 100644 --- a/backend/src/seeds/graphql/queries.ts +++ b/backend/src/seeds/graphql/queries.ts @@ -8,7 +8,6 @@ export const login = gql` firstName lastName language - coinanimation klickTipp { newsletterState } @@ -26,7 +25,6 @@ export const verifyLogin = gql` firstName lastName language - coinanimation klickTipp { newsletterState } diff --git a/backend/src/server/logger.ts b/backend/src/server/logger.ts index 939d7eaba..27d0cf75b 100644 --- a/backend/src/server/logger.ts +++ b/backend/src/server/logger.ts @@ -12,7 +12,6 @@ log4js.configure(options) const apolloLogger = log4js.getLogger('apollo') const backendLogger = log4js.getLogger('backend') -apolloLogger.addContext('user', 'unknown') backendLogger.addContext('user', 'unknown') export { apolloLogger, backendLogger } diff --git a/backend/src/server/plugins.ts b/backend/src/server/plugins.ts index f3067d44a..134ca1bb9 100644 --- a/backend/src/server/plugins.ts +++ b/backend/src/server/plugins.ts @@ -32,16 +32,16 @@ const logPlugin = { requestDidStart(requestContext: any) { const { logger } = requestContext const { query, mutation, variables } = requestContext.request - logger.trace(`Request: + logger.info(`Request: ${mutation || query}variables: ${JSON.stringify(filterVariables(variables), null, 2)}`) return { willSendResponse(requestContext: any) { - if (requestContext.context.user) logger.trace(`User ID: ${requestContext.context.user.id}`) + if (requestContext.context.user) logger.info(`User ID: ${requestContext.context.user.id}`) if (requestContext.response.data) - logger.trace(`Response-Data: + logger.info(`Response-Data: ${JSON.stringify(requestContext.response.data, null, 2)}`) if (requestContext.response.errors) - logger.trace(`Response-Errors: + logger.error(`Response-Errors: ${JSON.stringify(requestContext.response.errors, null, 2)}`) return requestContext }, diff --git a/backend/src/typeorm/repository/UserSettingRepository.ts b/backend/src/typeorm/repository/UserSettingRepository.ts index 528090ff2..f911cfd1a 100644 --- a/backend/src/typeorm/repository/UserSettingRepository.ts +++ b/backend/src/typeorm/repository/UserSettingRepository.ts @@ -1,33 +1,22 @@ import { EntityRepository, Repository } from '@dbTools/typeorm' import { UserSetting } from '@entity/UserSetting' -import { Setting } from '@enum/Setting' import { isStringBoolean } from '@/util/validate' @EntityRepository(UserSetting) export class UserSettingRepository extends Repository { - async setOrUpdate(userId: number, key: Setting, value: string): Promise { - switch (key) { - case Setting.COIN_ANIMATION: - if (!isStringBoolean(value)) { - throw new Error("coinanimation value isn't boolean") - } - break - default: - throw new Error("key isn't defined: " + key) - } - let entity = await this.findOne({ userId: userId, key: key }) + async setOrUpdate(userId: number, value: string): Promise { + let entity = await this.findOne({ userId: userId }) if (!entity) { entity = new UserSetting() entity.userId = userId - entity.key = key } entity.value = value return this.save(entity) } - async readBoolean(userId: number, key: Setting): Promise { - const entity = await this.findOne({ userId: userId, key: key }) + async readBoolean(userId: number): Promise { + const entity = await this.findOne({ userId: userId }) if (!entity || !isStringBoolean(entity.value)) { return true } diff --git a/database/package.json b/database/package.json index f5a16fd31..19d21dd5b 100644 --- a/database/package.json +++ b/database/package.json @@ -5,7 +5,7 @@ "main": "src/index.ts", "repository": "https://github.com/gradido/gradido/database", "author": "Ulf Gebhardt", - "license": "MIT", + "license": "Apache License 2.0", "private": false, "scripts": { "build": "mkdir -p build/src/config/ && cp src/config/*.txt build/src/config/ && tsc --build", diff --git a/docu/Concepts/BusinessRequirements/graphics/Creation_Flowchart.drawio b/docu/Concepts/BusinessRequirements/graphics/Creation_Flowchart.drawio new file mode 100644 index 000000000..4c401e10e --- /dev/null +++ b/docu/Concepts/BusinessRequirements/graphics/Creation_Flowchart.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/docu/Concepts/BusinessRequirements/image/Creation_flowchart.drawio.png b/docu/Concepts/BusinessRequirements/image/Creation_flowchart.drawio.png new file mode 100644 index 000000000..1e5b21d75 Binary files /dev/null and b/docu/Concepts/BusinessRequirements/image/Creation_flowchart.drawio.png differ diff --git a/frontend/package.json b/frontend/package.json index 68c4aca84..65f696aa9 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -99,5 +99,6 @@ "not ie <= 10" ], "author": "Gradido-Akademie - https://www.gradido.net/", + "license": "Apache License 2.0", "description": "Gradido, the Natural Economy of Life, is a way to worldwide prosperity and peace in harmony with nature. - Gradido, die Natürliche Ökonomie des lebens, ist ein Weg zu weltweitem Wohlstand und Frieden in Harmonie mit der Natur." } diff --git a/frontend/src/components/UserSettings/UserCoinAnimation.spec.js b/frontend/src/components/UserSettings/UserCoinAnimation.spec.js deleted file mode 100644 index aabf927fb..000000000 --- a/frontend/src/components/UserSettings/UserCoinAnimation.spec.js +++ /dev/null @@ -1,127 +0,0 @@ -import { mount } from '@vue/test-utils' -import UserCoinAnimation from './UserCoinAnimation' -import { updateUserInfos } from '@/graphql/mutations' - -import { toastErrorSpy, toastSuccessSpy } from '@test/testSetup' - -const localVue = global.localVue - -const mockAPIcall = jest.fn() - -const storeCommitMock = jest.fn() - -describe('UserCard_CoinAnimation', () => { - let wrapper - - const mocks = { - $t: jest.fn((t) => t), - $store: { - state: { - language: 'de', - coinanimation: true, - }, - commit: storeCommitMock, - }, - $apollo: { - mutate: mockAPIcall, - }, - } - - const Wrapper = () => { - return mount(UserCoinAnimation, { localVue, mocks }) - } - - describe('mount', () => { - beforeEach(() => { - jest.clearAllMocks() - wrapper = Wrapper() - }) - - it('renders the component', () => { - expect(wrapper.find('div#formusercoinanimation').exists()).toBeTruthy() - }) - - it('has an edit BFormCheckbox switch', () => { - expect(wrapper.find('.Test-BFormCheckbox').exists()).toBeTruthy() - }) - - describe('enable with success', () => { - beforeEach(async () => { - await wrapper.setData({ CoinAnimationStatus: false }) - mockAPIcall.mockResolvedValue({ - data: { - updateUserInfos: { - validValues: 1, - }, - }, - }) - await wrapper.find('input').setChecked() - }) - - it('calls the updateUserInfos mutation', () => { - expect(mockAPIcall).toBeCalledWith({ - mutation: updateUserInfos, - variables: { - coinanimation: true, - }, - }) - }) - - it('updates the store', () => { - expect(storeCommitMock).toBeCalledWith('coinanimation', true) - }) - - it('toasts a success message', () => { - expect(toastSuccessSpy).toBeCalledWith('settings.coinanimation.True') - }) - }) - - describe('disable with success', () => { - beforeEach(async () => { - await wrapper.setData({ CoinAnimationStatus: true }) - mockAPIcall.mockResolvedValue({ - data: { - updateUserInfos: { - validValues: 1, - }, - }, - }) - await wrapper.find('input').setChecked(false) - }) - - it('calls the subscribe mutation', () => { - expect(mockAPIcall).toBeCalledWith({ - mutation: updateUserInfos, - variables: { - coinanimation: false, - }, - }) - }) - - it('updates the store', () => { - expect(storeCommitMock).toBeCalledWith('coinanimation', false) - }) - - it('toasts a success message', () => { - expect(toastSuccessSpy).toBeCalledWith('settings.coinanimation.False') - }) - }) - - describe('disable with server error', () => { - beforeEach(() => { - mockAPIcall.mockRejectedValue({ - message: 'Ouch', - }) - wrapper.find('input').trigger('change') - }) - - it('resets the CoinAnimationStatus', () => { - expect(wrapper.vm.CoinAnimationStatus).toBeTruthy() - }) - - it('toasts an error message', () => { - expect(toastErrorSpy).toBeCalledWith('Ouch') - }) - }) - }) -}) diff --git a/frontend/src/components/UserSettings/UserCoinAnimation.vue b/frontend/src/components/UserSettings/UserCoinAnimation.vue deleted file mode 100644 index 040825105..000000000 --- a/frontend/src/components/UserSettings/UserCoinAnimation.vue +++ /dev/null @@ -1,65 +0,0 @@ - - diff --git a/frontend/src/graphql/mutations.js b/frontend/src/graphql/mutations.js index 672af5f04..9b035cba6 100644 --- a/frontend/src/graphql/mutations.js +++ b/frontend/src/graphql/mutations.js @@ -31,7 +31,6 @@ export const updateUserInfos = gql` $password: String $passwordNew: String $locale: String - $coinanimation: Boolean ) { updateUserInfos( firstName: $firstName @@ -39,7 +38,6 @@ export const updateUserInfos = gql` password: $password passwordNew: $passwordNew language: $locale - coinanimation: $coinanimation ) } ` diff --git a/frontend/src/graphql/queries.js b/frontend/src/graphql/queries.js index 2bd905e5e..601880a51 100644 --- a/frontend/src/graphql/queries.js +++ b/frontend/src/graphql/queries.js @@ -7,7 +7,6 @@ export const login = gql` firstName lastName language - coinanimation klickTipp { newsletterState } @@ -25,7 +24,6 @@ export const verifyLogin = gql` firstName lastName language - coinanimation klickTipp { newsletterState } diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index 3b4912a2f..a3e412a0e 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -186,11 +186,6 @@ "send_gdd": "GDD versenden", "send_per_link": "GDD versenden per Link", "settings": { - "coinanimation": { - "coinanimation": "Münzanimation", - "False": "Münzanimation ausgeschaltet", - "True": "Münzanimation eingeschaltet" - }, "language": { "changeLanguage": "Sprache ändern", "de": "Deutsch", diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 63f2510a3..4a7245147 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -186,11 +186,6 @@ "send_gdd": "GDD send", "send_per_link": "GDD send via link", "settings": { - "coinanimation": { - "coinanimation": "Coin animation", - "False": "Coin animation disabled", - "True": "Coin animation enabled" - }, "language": { "changeLanguage": "Change language", "de": "Deutsch", diff --git a/frontend/src/pages/Profile.spec.js b/frontend/src/pages/Profile.spec.js index fb4ee2d42..6a6efcfe3 100644 --- a/frontend/src/pages/Profile.spec.js +++ b/frontend/src/pages/Profile.spec.js @@ -38,9 +38,5 @@ describe('Profile', () => { it('has a user change newsletter form', () => { expect(wrapper.findComponent({ name: 'UserNewsletter' }).exists()).toBeTruthy() }) - - it('has a user change coin animation form', () => { - expect(wrapper.findComponent({ name: 'UserCoinAnimation' }).exists()).toBeTruthy() - }) }) }) diff --git a/frontend/src/pages/Profile.vue b/frontend/src/pages/Profile.vue index 01308b29a..703fea307 100644 --- a/frontend/src/pages/Profile.vue +++ b/frontend/src/pages/Profile.vue @@ -8,8 +8,6 @@
-
-