4418 Commits

Author SHA1 Message Date
dependabot[bot]
7482f8665e
build(deps-dev): bump eslint-config-prettier in /backend (#8370)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 10.1.1 to 10.1.2.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v10.1.1...v10.1.2)

---
updated-dependencies:
- dependency-name: eslint-config-prettier
  dependency-version: 10.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-26 01:35:02 +02:00
2f808f8fcc
revokeBadge also removes selection (#8437) 2025-04-25 17:45:56 +00:00
0873fc748c
feat(backend): lint - detect unused typescript disables (#8425)
* detect unused typescript disables

* fix lint errors

uuid-types

remove debug

fix config

* lint fixes
2025-04-25 14:31:49 +00:00
507179738a
refactor(backend): types for neo4j & neode (#8409)
* 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
2025-04-25 08:04:58 +00:00
2369d13ca2
lint everything, disable some setup steps for jest (#8423) 2025-04-24 22:39:32 +02:00
d4cc843662
lint n/no-sync (#8405) 2025-04-24 19:50:13 +00:00
649491f7cb
fix(backend): fix notification emails with different name (#8419)
* 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
2025-04-24 00:58:53 +02:00
5883818b91
refactor(backend): default badges, always return a badge (#8430)
* 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>
2025-04-23 17:12:24 +00:00
873cd6cd34
refactor(backend): allow to set selected badge-slot to null (#8421)
* 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>
2025-04-23 18:21:06 +02:00
7592fe29be
move graphql types into graphql folder (#8420) 2025-04-22 13:28:01 +00:00
74b79e0b14
fix faker image seed (#8422)
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>
2025-04-22 11:06:27 +00:00
dependabot[bot]
cd044bbd0c
build(deps): bump sanitize-html from 2.15.0 to 2.16.0 in /backend (#8418)
Bumps [sanitize-html](https://github.com/apostrophecms/sanitize-html) from 2.15.0 to 2.16.0.
- [Changelog](https://github.com/apostrophecms/sanitize-html/blob/main/CHANGELOG.md)
- [Commits](https://github.com/apostrophecms/sanitize-html/compare/2.15.0...2.16.0)

---
updated-dependencies:
- dependency-name: sanitize-html
  dependency-version: 2.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-21 19:35:09 +00:00
6f4d347f69
refactor(backend): separate queries (#8358)
* 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>
2025-04-21 11:47:12 +00:00
5131752710
refactor(backend): lint @typescript-eslint/strict (#8408)
* 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>
2025-04-21 11:09:47 +00:00
b464a380ca
refactor(backend): lint @typescript-eslint/recommended-requiring-type-checking (#8407)
* 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>
2025-04-21 10:32:44 +00:00
53f3a4e2e6
lint @typescript-eslint/recommended (#8406)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-04-21 12:01:53 +02:00
dependabot[bot]
f9368112de
build(deps): bump nodemailer from 6.10.0 to 6.10.1 in /backend (#8417)
Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 6.10.0 to 6.10.1.
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v6.10.0...v6.10.1)

---
updated-dependencies:
- dependency-name: nodemailer
  dependency-version: 6.10.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-19 19:29:39 +00:00
dependabot[bot]
26ac957eb5
build(deps-dev): bump @eslint-community/eslint-plugin-eslint-comments (#8415)
Bumps [@eslint-community/eslint-plugin-eslint-comments](https://github.com/eslint-community/eslint-plugin-eslint-comments) from 4.4.1 to 4.5.0.
- [Release notes](https://github.com/eslint-community/eslint-plugin-eslint-comments/releases)
- [Commits](https://github.com/eslint-community/eslint-plugin-eslint-comments/compare/v4.4.1...v4.5.0)

---
updated-dependencies:
- dependency-name: "@eslint-community/eslint-plugin-eslint-comments"
  dependency-version: 4.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-19 21:00:24 +02:00
8cf405c549
feat(backend): badges (#8391)
* delete all old badges

* reward/unrewardBadge

* verification Badges

* name all badged accordingly

* more tests, lint

* seed badges

* profileBadge mechanic

* badgesUnusedCount

* seed profileBadges set

* configure profile badge count

* insert badges db:data:badges:default

* seed commands to seed default badges and allow to seed branding data

* copy data migrations when building docker

* typo

* correct data:branding command & document it

* test new functionality

* Update backend/src/db/seed/badges.ts

Co-authored-by: Max <maxharz@gmail.com>

* Update backend/src/db/seed/badges.ts

Co-authored-by: Max <maxharz@gmail.com>

* Update backend/src/db/seed/badges.ts

Co-authored-by: Max <maxharz@gmail.com>

* naming coventions

* final naming fix

lint

fix build

fix badge type in test

renamed badge_ to trophy_

lint fixes

small renameing

fixes

fix users spec

fix webapp queries

fix display

* expose badge description

---------

Co-authored-by: Max <maxharz@gmail.com>
2025-04-17 23:08:54 +00:00
Moriz Wahl
89b0fa7a51
feat(backend): do not notify blocked or muted users (#8403)
* no more notifications of blocked or muted users in groups

* do not receive notifications on mentions or observed posts from muted users
2025-04-17 18:22:20 +00:00
Moriz Wahl
de4325cb50
feat(backend): only one email is sent although more notifications are triggered (#8400)
Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-04-17 19:55:53 +02:00
Moriz Wahl
aee46552d6
fix(backend): flaky notifications on mention in group unit test (#8404) 2025-04-17 16:43:53 +00:00
Moriz Wahl
727713ac1d
mentiioned users in posts and comments of groups (#8392) 2025-04-16 16:04:31 +00:00
Moriz Wahl
9440ad5cc3
feat(backend): no notification mails to users online (#8397) 2025-04-16 15:34:29 +00:00
5d154bcb85
fix migrations (#8390)
async migrations should not call next()

Co-authored-by: mahula <lenzmath@posteo.de>
2025-04-16 11:08:30 +02:00
4bd42009fd
refactor(backend): fix is muted by me query (#8365)
* use EXISTS for isMutedByMe

* corrected query in gql

---------

Co-authored-by: mahula <lenzmath@posteo.de>
2025-04-15 18:17:13 +02:00
2d8fe8a941
fix(backend): block/mute chat (#8364)
* 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>
2025-04-15 10:38:48 +02:00
dependabot[bot]
b31a439c8b
build(deps): bump graphql-upload from 11.0.0 to 13.0.0 in /backend (#8375)
Bumps [graphql-upload](https://github.com/jaydenseric/graphql-upload) from 11.0.0 to 13.0.0.
- [Release notes](https://github.com/jaydenseric/graphql-upload/releases)
- [Changelog](https://github.com/jaydenseric/graphql-upload/blob/master/changelog.md)
- [Commits](https://github.com/jaydenseric/graphql-upload/compare/v11.0.0...v13.0.0)

---
updated-dependencies:
- dependency-name: graphql-upload
  dependency-version: 13.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-15 01:10:42 +00:00
dependabot[bot]
adcbf81a53
build(deps-dev): bump the typescript group across 1 directory with 2 updates (#8383)
Bumps the typescript group with 2 updates in the /backend directory: [ts-jest](https://github.com/kulshekhar/ts-jest) and [tsc-alias](https://github.com/justkey007/tsc-alias).


Updates `ts-jest` from 29.3.1 to 29.3.2
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.3.1...v29.3.2)

Updates `tsc-alias` from 1.8.14 to 1.8.15
- [Release notes](https://github.com/justkey007/tsc-alias/releases)
- [Commits](https://github.com/justkey007/tsc-alias/compare/v1.8.14...v1.8.15)

---
updated-dependencies:
- dependency-name: ts-jest
  dependency-version: 29.3.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: typescript
- dependency-name: tsc-alias
  dependency-version: 1.8.15
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: typescript
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-14 20:29:58 +00:00
dependabot[bot]
1afd9576ce
Bump bcryptjs from 2.4.3 to 3.0.2 in /backend (#8224)
Bumps [bcryptjs](https://github.com/dcodeIO/bcrypt.js) from 2.4.3 to 3.0.2.
- [Release notes](https://github.com/dcodeIO/bcrypt.js/releases)
- [Commits](https://github.com/dcodeIO/bcrypt.js/compare/2.4.3...v3.0.2)

---
updated-dependencies:
- dependency-name: bcryptjs
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-14 18:43:23 +02:00
dependabot[bot]
af5f506d22
build(deps-dev): bump eslint-import-resolver-typescript in /backend (#8369)
Bumps [eslint-import-resolver-typescript](https://github.com/import-js/eslint-import-resolver-typescript) from 4.3.1 to 4.3.2.
- [Release notes](https://github.com/import-js/eslint-import-resolver-typescript/releases)
- [Changelog](https://github.com/import-js/eslint-import-resolver-typescript/blob/master/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-import-resolver-typescript/compare/v4.3.1...v4.3.2)

---
updated-dependencies:
- dependency-name: eslint-import-resolver-typescript
  dependency-version: 4.3.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-13 12:49:18 +00:00
dependabot[bot]
25552431b5
build(deps): bump ioredis from 4.16.1 to 5.6.1 in /backend (#8371)
Bumps [ioredis](https://github.com/luin/ioredis) from 4.16.1 to 5.6.1.
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/redis/ioredis/blob/main/CHANGELOG.md)
- [Commits](https://github.com/luin/ioredis/compare/v4.16.1...v5.6.1)

---
updated-dependencies:
- dependency-name: ioredis
  dependency-version: 5.6.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-13 09:03:41 +00:00
dependabot[bot]
63cd1d36b1
build(deps): bump dotenv from 16.4.7 to 16.5.0 in /backend (#8372)
Bumps [dotenv](https://github.com/motdotla/dotenv) from 16.4.7 to 16.5.0.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v16.4.7...v16.5.0)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-version: 16.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-12 20:55:41 +00:00
dependabot[bot]
4f375c3f76
build(deps-dev): bump @types/node from 22.14.0 to 22.14.1 in /backend (#8374)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.14.0 to 22.14.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 22.14.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-12 19:18:17 +00:00
8aa00216df
v3.3.0 (#8380)
regenerate changelog
2025-04-12 12:47:01 +00:00
Wolfgang Huß
2c7bfc700e
chore(backend): add e-mail setting for our new 'mailserver' to our backend .env.template (#8359)
* Add e-mail setting for our new 'mailserver' to our backend .env.template

* Reverse to default settings

---------

Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-04-12 11:27:03 +00:00
mahula
7d9b0e6437
refactor(backend): set up smtp pooling for nodemailer (#8167)
* 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>
2025-04-12 12:59:56 +02:00
117c0d75e7
refactor(backend): user graphql (#8354)
* 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
2025-04-12 00:50:16 +00:00
fa0280f9e9
fix block user (#8363) 2025-04-11 23:44:21 +00:00
Max
caeff070b7
feat(webapp): add mute/unumute group to menu (#8335)
* 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>
2025-04-11 23:10:42 +00:00
Moriz Wahl
7a44e1aa4e
test that there is no email sent when no notification (#8362) 2025-04-11 23:49:31 +02:00
Moriz Wahl
aedf8d93c7
feat(backend): notify posts in groups (#8346)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-04-11 20:50:59 +00:00
Moriz Wahl
3734e2ef56
feat(backend): notify users when a followed user posted (#8313) 2025-04-11 17:56:11 +02:00
Wolfgang Huß
bda0de0249
fix(backend): fixing admin email notification settings (#8356)
* Fix admin e-mail notification settings

* Optimize migration '20250405030454-email-notification-settings.ts' down

* Update backend/src/db/admin.ts

Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>

---------

Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-04-11 10:00:15 +00:00
711061b0c0
fix(backend): error when there is an abandoned email (#8315)
* 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
2025-04-10 18:17:51 +00:00
Moriz Wahl
abd13a6cff
migrate commenting users to observe commented posts (#8308) 2025-04-10 19:36:26 +02:00
ab6fe37c3e
refactor(backend): new chat message notification email (#8357)
* new chat message notification email

- new mail features name in subject and text

* fix english version

* typo

* fix typos

* adjust tests
2025-04-10 16:38:51 +00:00
fcc99ab58e
refactor(backend): clean migrate scripts (#8317)
* 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>
2025-04-10 09:52:49 +02:00
Max
1b07b06ca7
feat(webapp): notification settings frontend (#8320)
Implements detailed settings for email notifications.

Issues
relates 🚀 [Feature] Drei neue Interaktions-Benachrichtigungen #8280
2025-04-09 13:21:38 +00:00
Moriz Wahl
fe7bab4675
posts and comments created by the factory set the observe relation (#8344) 2025-04-09 08:36:56 +00:00