1289 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
f782032563
refactor(backend): lint - import/order (#8350)
* lint - import/no-relative-parent-imports

fix build error

* fix md

* lint import/order

enabled rule import/order and fixed impot order in each file
2025-04-09 09:44:48 +02:00
a4f391930c
lint - import/no-relative-parent-imports (#8349)
enable import/no-relative-parent-imports
2025-04-08 23:18:07 +02:00
59c145c1f9
lint plugin n - update and cleanup (#8342)
- 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
2025-04-08 08:35:49 +00:00
f7c371c9ce
lint import/no-extraneous-dependencies (#8341) 2025-04-08 07:35:11 +00:00
d6cb9b51c3
feat(backend): lint rules (#8339)
* eslint import

* eslint comments

* eslint security

* eslint import - rules

* eslint n

* eslint promise

* eslint no-catch-all

* eslint jest

* missing ignore

* disable import/unambiguous as conflicting
2025-04-07 10:53:44 +00:00
5462a5b4c1
fix(backend): typo in groups resolver (#8318)
* fix typo

* fixed all related typos in unittests and found another in groups

---------

Co-authored-by: mahula <lenzmath@posteo.de>
2025-04-03 22:01:10 +00:00
Moriz Wahl
130da7509b
fix(backend): users observing post count (#8295)
* do not count users that are deleted or disbled
2025-04-03 16:03:53 +00:00
01027e42cc
feat(webapp): track online status (#8312)
* client

* backend

* tests

* also save awaySince timestamp

* remove console.log
2025-04-03 17:19:53 +02:00
Moriz Wahl
316c12bd35
provide information of the observing status of the post after creating a comment (#8310) 2025-03-31 20:41:39 +02:00
Moriz Wahl
538f409086
feat(backend): observe posts (#8292)
* 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
2025-03-26 22:16:06 +01:00
Robert Schäfer
628b57aa29
feat(other): major improvement of deployment (#7925)
* 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>
2025-02-28 18:22:23 +01:00
mahula
42e039f338 fix geodata in mapbox-related resolver test 2024-10-20 13:52:31 +02:00
Wolfgang Huß
0691b8eb79 Fix backend test which uses 'newlyCreatedNodesWithLocales' in file 'backend/src/schema/resolvers/users/location.spec.ts' 2024-08-29 13:48:21 +02:00
Wolfgang Huß
27777eedaa Fix backend tests 'valid event input with location name' 2024-08-29 13:42:40 +02:00
mahula
936ccf9877 due to changes in 9.0.0 use named import 2024-03-02 13:24:00 +01:00
Wolfgang Huß
6a87ed5cb4 Fix backend tests to new default group description length without HTML 2024-01-04 14:49:55 +01:00
Moriz Wahl
ed5149c41e raise backend unit test coverage, no promise all in notification spec 2023-11-02 19:16:41 +01:00
Moriz Wahl
fdf38af4e9 unit tests for ISO format of event dates 2023-10-26 16:49:15 +02:00
Moriz Wahl
44d6f31574 timezone offset in migration 1 hour, check event date string for ISO format 2023-10-26 16:40:41 +02:00
Moriz Wahl
eedc93f7c5 fix cypher statement in unit test 2023-10-02 17:01:42 +02:00
Moriz Wahl
b1b26862a6 fix(backend): postType as array in searchPosts 2023-09-26 15:02:47 +02:00
mahula
60d971233b add back language detector scraper to scraper file 2023-09-07 20:46:47 +02:00
1ab4009536
fix metascraper crash, remove metascraper-lang-detector 2023-09-05 23:10:25 +02:00
fbd2b08737
Merge branch 'master' into fix-security-subscriptions 2023-07-20 17:11:20 +02:00
604e1d8465
subscription roomCountUpdated security fix 2023-07-20 13:44:23 +02:00
f7c381efd8
subscription chatMessageAdded security fix 2023-07-20 13:44:04 +02:00
1b8b356432
notification subscription 2023-07-20 13:41:59 +02:00
e2c23ad4a2
more lint fixes 2023-07-20 13:10:32 +02:00
93aaea4aa1
only take 2000 chat message characters 2023-07-19 11:51:41 +02:00
4a474a6a4a
convert indexId to string (neo4j number problem) 2023-07-18 16:35:18 +02:00
Moriz Wahl
c0fe7028e5 fix unit test 2023-07-18 13:23:03 +02:00
Moriz Wahl
eed89f8c4b add chat middleware to add new message subscription 2023-07-18 12:46:19 +02:00
ae2d6c7ad5
fix recipient selection 2023-07-18 10:52:18 +02:00