* type for neo4j and neode
* fix build
* remove flakyness
* wait for neode to install schema
* remove flakyness
* explain why we wait for a non-promise
* fix diffent name notifications
We had emails sent with incorrect names.
This PR combines the query for the email with the user the notification
is sent to since the notification in database was correct.
The underlying problem is the unstable order in which the database can
return values. The results of the two queries were matched by id since
it was assumed that they always return the same order of elements.
lint fixes
fix typo
fix factory
fix tests
* fix tests accoridng to review
also test for the right amount of emails in every test
* default badges, always return a badge
- default badges for trophy and verification
- always return a badge instead of null
- isDefault field on Badge
lint fixes
* default_verification svg
* add default-trophy
Co-authored-by: Sebastian Stein <sebastian@codepassion.de>
---------
Co-authored-by: Sebastian Stein <sebastian@codepassion.de>
* allow to set selected badgeslot to null
Free a specific badge slot by setting it to null
* Update backend/src/schema/resolvers/users.ts
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
---------
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
Co-authored-by: Max <maxharz@gmail.com>
Images now display properly and there is diffent images now
allow to provide url, urls msut be valid in seed
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
* separate all queries into one file each
* fix merge error
* fix lint
---------
Co-authored-by: mahula <lenzmath@posteo.de>
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
* lint @typescript-eslint/recommended
* lint @typescript-eslint/recommended-requiring-type-checking
fix type not detected locally due to wierd uuid typings
missing save
error not reported locally
* lint @typescript-eslint/strict
---------
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
* lint @typescript-eslint/recommended
* lint @typescript-eslint/recommended-requiring-type-checking
fix type not detected locally due to wierd uuid typings
missing save
error not reported locally
---------
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
* no notification when blocked
* no notifications for muted users
* move tests from emssage to notification middleware
* fix test
* also dont update unreadRoomCount when user is muted
---------
Co-authored-by: mahula <lenzmath@posteo.de>
* backend: active SMTP pooling in Nodemailer configuration
* backend: add max SMTPconnections and messages to Nodemailer configuration
* move transport outside function to ensure pooling can work
---------
Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
* refactor user graphql
- remove isLoggedIn query
- currentUser query only for authenticated, currenUser always returns a
User
- currentUser query implementation uses neo4jgraphql with id parameter
- remove custom email field from user
- fix bug in frontend when there is no categories
* remove comment
* remove unused filter
* fix currentuser test
* fixedswitchUserRole mutation
* fix categories
* basics to notify a user when a followed user posted
* do not notify following user on posts in groups
* followig user wrote post notification
* notify regular group members when a new post is posted in the group
* mute and unmute groups
* clean database at end
* locale for post in group notification
* post in group notification triggers correctly
* email settings for post in group
* Add mute/unumute group to menu (WIP)
* Add mute group functionality (WIP)
* Add locales; use mute/unmute mutations, cleanup tests
* Overhaul group content menu test
* Rename isMuted to isMutedByMe and add it to group query
* Add German and English locales
* Add spanish translations
* Add missing translation keys (with null values)
* Remove console statement
* Add snapshot
* Replace mount by render
* Mock Math.random(), add tests for mute/unmute
* Use container instead of baseElement for snapshots
* fix group slug tests
* undo wrong variable naming
* rename parameter to groupId of mute/unmute group mutation
* rename parameter to groupId of mute/unmute group mutation
* only non pending members have access to the comtext menu
---------
Co-authored-by: Moriz Wahl <moriz.wahl@gmx.de>
Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
* fix error when there is an abandoned email
We check beforehand if an email has an user attached, but we never
delete an email without user. This will violate a unique constraint
blocking that particular email from ever being used again.
* fix tests
* clean migrate scripts
- refactor migrate:init
- separate admin seed
- separate categories seed
- rework backend README regarding the database
- remove `db:clean` command as its a duplicate of `db:reset`
- remove `__migrate` helper alias
* renamed clean.ts to reset.ts
* set indices & constrains in init function
* fix comment
* disable migrations touching indices
* remove obsolete comment
* always run init on kubernetes
* reset db with or without migrations
* lint fixes
* Refine 'README.md'
* Refine more 'README.md'
* fix lint
---------
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
- Update plugin n to fix a deprecation warning
- Order n rules according to docu
- use n:recommended
- comment out all rules from recommened
- enable some rules
* all users that observe a post are notified when the post is commented, except of the author of the comment, or users that blocked the commenter
* test to illustrate the behavior of notifications for observed posts
* After creating the post, the author of it automatically observes it to get notifications when there are interactions
* a user that comments a post, automatically observes that post to get notifications when there are more interactions on that post
* mutation that switches the state of the observation of a post on and off
* feat(other): major improvement of deployment
Motivation
----------
Kubernetes:
* backend becomes a statefulset (exclusive volume mount)
See: https://spacelift.io/blog/statefulset-vs-deployment
* implement neo4j backup with job
Docker:
* consistent targets across all dockerfiles
* remove redundant labels
* remove unnecessary build args
* remove obsolete networks
* remove development dependencies for production
Rebranding:
* add image tags for local tagging and pulling
* use Github's docker build workflows
* use Github container registry
* ONBUILD to simplify caller Dockerfiles
* docker compose for branding
Tooling:
* same node --version as in dockerfile
Docs:
* missing step in README.md
* refactor: remove submodules
It's better to keep them all in a separate repository
* improve kubernetes chart
* better image tag defaults
* split neo4j into its own chart (for re-use)
* use application defaults where possible
* optional resources for all pods
* remove obsolete key/value pair from secrets
* remove obsolete build argsand
and add labels for neo4j enterprise
* env vars for webapp
* allow to define redirect domains
Define a list of Domains that redirect to the domain of the project. The
idea is to provide the ability to redirect eg. www.domain.tld to
domain.tld
* remove maintenance part regarding database
* move backup job outside template folder
* name the ingress
* updated ingress
* handle empty case of middlewares
* try to default the ingress
* use quote
* restore todo-next-update
* fix docu check
* fix naming
* try using prod:migrate
* try using override config
* copy src folder
* try using base as image instead of build
* fix test build
* force build
* comment for the problem
* fix webapp tests (potentially)
---------
Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>