40 Commits

Author SHA1 Message Date
mattwr18
79d23cc6de Merge branch 'master' of github.com:Human-Connection/Human-Connection into 2412-favor-transaction-function 2019-12-11 10:56:42 +01:00
mattwr18
0e757cf94f Refactor to fix test, DRY out code 2019-12-06 17:48:14 +01:00
mattwr18
da150e0b27 Refactor notificationsMiddleware
- Use transaction functions
- extract validations into validationsMiddleware
- break notifyUsers into notifyUsersOfMention/notifyUsersOfComment
2019-12-06 14:48:32 +01:00
mattwr18
132951c525 Update handleContentDataOfPost to return post
- fix tests, functionality
2019-12-06 13:03:05 +01:00
roschaefer
8f0ce19f09 Implement getDriver() and getNeode() the same way
I want to introduce `neode` and `neo4j-graphql-js` to my students and
saw this.
2019-12-05 21:00:24 +01:00
mattwr18
1827889582 Refactor notificationsMiddleware/locations
- start refactoring
- locations does not have any automated tests, which makes it more
difficult to refactor and have confidence that functionality will not be
broken
- notificationsMiddleware in progress
2019-12-05 20:42:45 +01:00
mattwr18
ace7818eac Update test description
- the test clearly tests that the createdAt doesn't change, we changed
the implementation, but didn't change the test description
2019-12-04 19:56:49 +01:00
roschaefer
132c12a7d3 Close neo4j driver sessions
We had this error in our neo4j pod recently:

```
2019-12-02 08:29:42.680+0000 ERROR Unable to schedule bolt session 'bolt-1018230' for execution since there are no available threads to serve it at the moment. You can retry at a later time or consider increasing max thread pool size for bolt connector(s).
2019-12-02 08:29:42.680+0000 ERROR Unable to schedule bolt session 'bolt-1018224' for execution since there are no available threads to serve it at the moment. You can retry at a later time or consider increasing max thread pool size for bolt connector(s).
2019-12-02 08:29:42.681+0000 ERROR Unable to schedule bolt session 'bolt-1018352' for execution since there are no available threads to serve it at the moment. You can retry at a later time or consider increasing max thread pool size for bolt connector(s).
2019-12-02 08:29:42.682+0000 ERROR Unable to schedule bolt session 'bolt-1018243' for execution since there are no available threads to serve it at the moment. You can retry at a later time or consider increasing max thread pool size for bolt connector(s).
```

Apparently the default is 400 threads. So we must have a leak somewhere.
2019-12-02 18:12:11 +01:00
roschaefer
978347ba7b Tell github-linguists to ignore snapshots 2019-11-16 20:09:05 +01:00
roschaefer
cbc547a86b refactor: small refactoring for readability
@KapilJ your solution is right now the best solution, I think. Probably
the ideal solution would be if we could implement the `CreateComment`
resolver in such a way that it is doing eager loading of the
`comment->post->author` relationship and resolving a commment object
which has the required objects all set. Then you wouldn't have to
refetch all the stuff.

But I think this is OK for now 👍
2019-10-31 16:11:05 +01:00
Kapil Jain
b4a9e3e551 add software tests for two notifications bug 2019-10-31 05:08:15 -04:00
Kapil Jain
c21ad2244f add software tests for two notifications bug 2019-10-30 22:03:52 -04:00
Kapil Jain
063ff17d8b add software tests for two notifications bug 2019-10-30 20:39:50 -04:00
Kapil Jain
aecc21890e fixed removing original post's user 2019-10-29 14:20:51 -04:00
Kapil Jain
529a8a6365 send only one notification for mention and comment 2019-10-28 15:40:29 -04:00
mattwr18
16d7e6c91a Update notifications
- create only one relationship by using merge, but do not update
createdAt attribute/update test
- order by updatedAt_desc
2019-09-13 20:14:47 +02:00
mattwr18
67d68db231 Update post resolver to fix embarrasing bugs
- when a user updates a post, we should not override every property in
our database with the new params, since we have read-only properties
like createdAt that we don't want to go deleting aimlessly.
2019-09-13 20:14:47 +02:00
mattwr18
ce487f1e0f Set notifications.createdAt only at creation
- we should not be setting it every time a notification is created
2019-09-13 20:14:47 +02:00
roschaefer
2a3e6ad76f Alternative solution for #1494 2019-09-13 20:14:47 +02:00
roschaefer
98194ef54a Follow @mattwr18's suggestions 2019-08-30 16:00:32 +02:00
roschaefer
cbcba8f08d Follow @Tirokk's suggestion 2019-08-30 16:00:32 +02:00
roschaefer
c29ee5e3d3 Update notifications in place 2019-08-30 16:00:32 +02:00
roschaefer
994ab43950 Change the behaviour how notifications get created
I think it makes more sense to update an existing notification in place.
Ie. if there was already a notification, just mark it as unread so it
ends up in the recipient's notification list again.
2019-08-30 16:00:32 +02:00
roschaefer
733c2d5ce1 All backend tests pass 2019-08-30 16:00:32 +02:00
roschaefer
643d175ef6 Implement notifications resolver 2019-08-30 16:00:32 +02:00
Wolfgang Huß
af968461b6 Split handleNotificationsMiddleware in notificationsMiddleware and hashtagsMiddleware 2019-08-26 16:24:43 +02:00
Wolfgang Huß
1d1959561b First approach to extract the Hashtags in the middleware and change the database 2019-06-28 08:14:37 +02:00
Robert Schäfer
54c7c204c2 Run yarn run lint --fix 2019-06-11 23:10:26 +02:00
Matt Rider
1c1d1a67ea Merge in master 2019-05-23 15:31:05 -03:00
Matt Rider
758bf215ac Merge branch 'master' of github.com:Human-Connection/Human-Connection into uploads-on-server 2019-05-23 15:26:19 -03:00
cfd0975b24
backend linting 2019-05-23 19:23:03 +02:00
Robert Schäfer
2a22aaa907 Fix edge case bug in extractIds 2019-05-21 02:01:00 +02:00
Robert Schäfer
65f96c2b28 Create notifications on UpdatePost, too
Note that we don't create duplicate notifications. I made use of the behaviour
of XSS-middleware: It removes all css classes from `<a>` anchors. Because
notifications rely on a css class `mention` which gets removed in a later
middleware, this gives us a nice behaviour for re-notifications without creating
duplicates. The downside is that it creates dependencies between middlewares and
it's not that obvious at all.

cc @mattwr18 @ulfgebhardt @appinteractive @Tirokk
2019-04-16 22:11:07 +02:00
Robert Schäfer
aa3762a095 Implement right order of notifications middleware 2019-04-16 17:48:42 +02:00
Robert Schäfer
b2d72ae74a Implement parsing of mention links 2019-04-16 16:05:09 +02:00
Robert Schäfer
f30da038d9 Change backend test to parse html not plain text 2019-04-16 11:21:38 +02:00
Robert Schäfer
23a461d16e Follow component directory strucutre in backend 2019-04-16 11:13:40 +02:00
Robert Schäfer
26caff5a9b Fix lint 2019-04-10 01:58:18 +02:00
Robert Schäfer
0476c15163 Remove dots from matched @mention regex 2019-04-10 01:58:18 +02:00
Robert Schäfer
58019c8975 Avoid to send out notifications for email adresses 2019-04-10 01:58:18 +02:00