Commit Graph

67 Commits

Author SHA1 Message Date
Barış Soner Uşaklı
6c7e614417 feat: batch.processSortedSet min/max (#12129)
* feat: batch.processSortedSet min/max

* test if this works
2023-10-26 10:23:27 -04:00
Barış Soner Uşaklı
0f4e66485e fix: closes #12054 handle negative start/stop in psql 2023-10-03 13:53:18 -04:00
Barış Soner Uşaklı
90f29571f1 refactor: add connectionTimeout to psql
only sleep if there is more than one iteration in processSortedSet
2023-08-18 19:26:57 -04:00
Barış Soner Uşaklı
9b1cc57604 add reverse support to db.processSortedSet (#11826) 2023-07-20 22:26:55 -04:00
Barış Soner Uşaklı
04998908ba Fixes for "validate email" & "send validation email" in ACP (#11677)
* confirmObj changes

dont expire confirm:<code>, add a expires field instead
dont expire confirm:byUid:<uid>

on admin manage users display the users email status
	1. verified
	2. verify email sent (pending)
	3. verify email sent (expired)
	4. no email entered

fix validate email in acp to use
	email in user:<uid> if they have one
	if not check if its in confirm:<code>
	if its not in above cant validate throw error

fix send validate email to use
	email in user:<uid> if they have one
	if not check if its in confirm:<code>
	if its not in above too cant validate throw error

* add back socket.io tests

* test: fix confirm tests

no longer using pexpire
return correct time left on token

* chore: update openapi

* fix: delete call

* test: mget test fixes

* test: fix tests
2023-06-05 12:12:48 -04:00
Barış Soner Uşaklı
2cdc454f3e use order by 2023-05-07 23:48:09 -04:00
Barış Soner Uşaklı
f083cd559d feat: add getSortedSetMembersWithScores (#11579)
* feat: add getSortedSetMembersWithScores

* lint: fix

* test: fix redis

* fix: mongo/psql
2023-05-07 22:32:05 -04:00
Barış Soner Uşaklı
56427e4f9d fix: closes #11343, don't crash if tags array is empty 2023-03-10 11:40:02 -05:00
Barış Soner Uşaklı
767973717b perf: WIP #10449, allow array of pids for posts.purge (#10465)
* perf: WIP #10449, allow array of pids for posts.purge

* refactor: deletePostDiffs

* perf: deletePostFromReplies/deletePostFromGroups

* refactor: upload

* refactor: deleteFromCategoryRecentPosts

deleteFromUsersBookmarks
deleteFromUsersVotes

* feat: closes #10468, add incrObjectFieldByBulk

* refactor: allow nids for notifications.rescind

* refactor: allow uids array for user.updatePostCount

* refactor: rewrite deleteFromTopicUserNotification to work with an array

* feat: deprecate action:post.purge as well

* lint: add missing comma
2022-04-07 14:06:25 -04:00
CommanderRoot
200f0b2e4f refactor: replace deprecated String.prototype.substr() (#10432)
.substr() is deprecated so we replace it with .slice() which works similarily but isn't deprecated

Signed-off-by: Tobias Speicher <rootcommander@gmail.com>
2022-03-31 13:49:56 -04:00
Barış Soner Uşaklı
5143ca33f3 feat: handle array of keys in psql exists for zsets 2022-02-07 17:54:51 -05:00
Julian Lam
606808760e test: add test to verify that a sorted set is automatically deleted if its last element is removed (#10261)
* test: add test to verify that a sorted set is automatically deleted if its last element is removed

* fix: remote empty zsets when all elements have been removed #yolo

* Revert "fix: remote empty zsets when all elements have been removed #yolo"

This reverts commit 0ac73244bb.

* fix: altered behaviour in module.exists instead of zrem
2022-02-07 17:16:50 -05:00
Barış Soner Uşaklı
6ea3b51f12 Zincrybulk (#9975)
* feat: zincry bulk

* feat: psql bulk incr placeholder

* test: redis test fix

* test: redis test
2021-11-30 19:59:47 -05:00
Barış Soner Uşaklı
fb363957d1 refactor: tab rules 2021-11-18 16:42:18 -05:00
Barış Soner Uşaklı
8379c11b22 refactor: setObjectBulk to match sortedSetAddBulk 2021-11-12 19:51:59 -05:00
Barış Soner Uşaklı
e6a17a6349 Psql multikey (#9852)
* perf: convert promise.all to single query

* perf: single query for removeBulk

* perf: list
2021-10-01 19:36:42 -04:00
Barış Soner Uşaklı
ea04aeded4 perf: convert promise.all to single query (#9851) 2021-10-01 15:24:19 -04:00
Barış Soner Uşaklı
397835a05a feat: allow removing multiple items from list 2021-09-09 22:25:17 -04:00
Barış Soner Uşaklı
0ce4b87d85 fix: #9781 (#9782) 2021-09-03 20:34:42 -04:00
Barış Soner Uşaklı
92de49be00 test: add test for undefined fields in getObjectsFields 2021-04-22 11:14:47 -04:00
Barış Soner Uşaklı
4327a09d76 feat: allow optional fields argument on db.getObject(s) (#9385) 2021-03-14 11:40:54 -04:00
Barış Soner Uşaklı
8f0386d9ac feat: add failing test for list append/prepend with list (#9303)
* feat: add failing test for list append/prepend with list

* feat: mongo/psql

* feat: improve test
2021-02-14 11:12:56 -05:00
Peter Jaszkowiak
115d19e289 chore: eslint prefer-rest-params, prefer-spread 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
23f212a4c0 chore: eslint prefer-destructuring 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
dab3b23575 chore: eslint no-var, vars-on-top 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
b56d9e12b5 chore: eslint prefer-arrow-callback 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
707b55b6a5 chore: eslint prefer-template 2021-02-08 18:06:44 -05:00
Barış Soner Uşaklı
47299ea587 Categories refactor (#9257)
* feat: wip categories pagination

* feat: add subCategoriesPerPage setting

* feat: add load more sub categories button to category page

* fix: openapi spec

* feat: show sub categories left on category page

hide button when no more categories left

* breaking: rename categories to allCategories on /search

categories contains the search results

* fix: spec

* refactor: remove cidsPerPage

* fix: tests

* feat: use component for subcategories

* fix: prevent negative subCategoriesLeft

* feat: new category filter/search WIP

* feat: remove categories from /tag

* fix: dont load all categories when showing move modal

* feat: allow adding custom categories to list

* breaking: dont load entire category tree on post queue

removed unused code
add hooks to filter/selector
add options to filter/selector

* feat: make selector modal work again

* feat: replace old search module

* fix: topic move selector

* feat: dont load all categories on create category modal

* fix: fix more categorySelectors

* feat: dont load entire category tree on group details page

* feat: dont load all categories on home page and user settings page

* feat: add pagination to /user/:userslug/categories

* fix: update schemas

* fix: more tests

* fix: test

* feat: flags page, dont return entire category tree

* fix: flag test

* feat: categories manage page

dont load all categories
allow changing root category
clear caches properly

* fix: spec

* feat: admins&mods page

dont load all categories

* fix: spec

* fix: dont load all children when opening dropdown

* fix: on search results dont return all children

* refactor: pass all options, rename options.cids to options.selectedCids

* fix: #9266

* fix: index 0

* fix: spec

* feat: #9265, add setObjectBulk

* refactor: shoter updateOrder

* feat: selectors on categories/category

* fix: tests and search filter

* fix: category update test

* feat: pagination on acp categories page

show order in set order modal

* fix: allow drag&drop on pages > 1 in /admin/manage/categories

* fix: teasers for deep nested categories

fix sub category display on /category page

* fix: spec

* refactor: use eslint-disable-next-line

* refactor: shorter
2021-02-07 15:09:52 -05:00
Barış Soner Uşaklı
33bf1b0e2c feat: async/await psql connection 2021-01-22 22:10:34 -05:00
Barış Soner Uşaklı
1c45fa1ba5 feat: socket.io 3 changes (#8845)
* feat: socket.io 3 changes

* feat: replace socketio-wildcard with socket.onAny

up socket.io-redis to 6.x

* feat: remove mongodb/psql socket.io adapters

* feat: show data on fail

* fix: tests

* fix: typo

* fix: logger test fix

* fix: logger.io_close

* chore: up deps

* chore: update readme to reflect redis requirement

* fix: increase timeout show data if test fails
2020-12-06 13:03:33 -05:00
Barış Soner Uşaklı
5bb5ec4618 fix: #8954, clear purged replies and toPids (#8959)
* fix: #8954, clear purged replies and toPids

* fix: redis test
2020-11-26 12:04:01 -05:00
Timothy Fike
5078a8df25 ttl/pttl (#8689) 2020-09-27 22:10:46 -04:00
Barış Soner Uşaklı
4be693f2e7 feat: fullname search (#8641)
* feat: fullname search

* fix: take last element

* fix: attempt to fix psql like query

* feat: upgrade sript, another fix attempt

* fix: psql test

* fix: psql scan

* feat: add debug for test

* feat: test collate

* feat: cleanup

* fix: upgrade script
2020-09-11 23:20:49 -04:00
Barış Soner Uşaklı
2d5bd153e0 fix: check if unread_tids are followed 2020-09-11 00:39:45 -04:00
Barış Soner Uşaklı
e95cd28f6f Zscan (#8458)
* feat: zscan

* fix: mongodb tests

* feat: scan, ip search starts with
2020-07-02 20:11:53 -04:00
Barış Soner Uşaklı
723fe8e8e0 feat: zscan (#8457)
* feat: zscan

* fix: mongodb tests
2020-07-02 17:59:20 -04:00
Barış Soner Uşaklı
e80379dc0e feat: display stack trace on winston.error 2020-06-20 23:32:12 -04:00
Barış Soner Uşaklı
0009f54e6e feat: add getSortedSetMembers 2020-05-26 22:55:28 -04:00
Barış Soner Uşaklı
edf9fe3b7f feat: add null tests for sorted sets 2020-05-09 10:38:56 -04:00
Ben Lubar
f65922297d fix abysmal postgresql performance in getSortedSetsMembers (#8030)
* refactor postgres upgrade function to use async

* add function wrapper for getting the elements of a sorted set to avoid postgres planning the query with a nested sequential scan

* fix fatal(?!) lint errors

* add missing await

* bump PostgreSQL version on Travis CI to one that isn't over 3 years out of date
2019-11-13 14:45:48 -05:00
Baris Usakli
77cb4b55cb fix: #7892, handle string 'true'/'false' 2019-09-10 13:56:57 -04:00
David Karrick
9b4ae4c04a Added Postgres SSL Support (#7887)
* [Added] Postgres SSL Support

* [Added]Postgres SSL Support

* [Added] Postgres SSL Support
2019-09-07 13:27:51 -04:00
Barış Soner Uşaklı
1e0190abef fix: #7842, groups.invite works with an array of uids 2019-08-18 21:51:32 -04:00
Barış Soner Uşaklı
8d4f20865f fix: redis pubsub not being required correctly
split connection logic into separate module
2019-08-06 18:27:00 -04:00
Barış Soner Uşaklı
af1f7249a7 feat: test psql without defineProperty (#7815)
* feat: test psql without defineProperty

* feat: refactor psql

remove .bind calls, use module.pool.query directly
move requires to top of file
move promisify to bottom so .init etc are promisified

* feat: mongodb

move requires to bottom

* feat: redis
2019-08-05 09:20:00 -04:00
Barış Soner Uşaklı
53e1b349ae Change post owner (#7752)
* feat: #7749, allow array of keys for setObject

* feat: sortedSetRemoveBulk

* feat: test for bulk remove

* feat: #7083, ability to change post ownership

* feat: #7083, fix tid:<tid>:posters

* feat: #7083, front end

* fix: #7752, psql methods

* fix: add missing await

* fix: maybe psql
2019-07-12 14:06:09 -04:00
Barış Soner Uşaklı
805dcd7ca2 Async refactor in place (#7736)
* feat: allow both callback&and await

* feat: ignore async key

* feat: callbackify and promisify in same file

* Revert "feat: callbackify and promisify in same file"

This reverts commit cea206a9b8.

* feat: no need to store .callbackify

* feat: change getTopics to async

* feat: remove .async

* fix: byScore

* feat: rewrite topics/index and social with async/await

* fix: rewrite topics/data.js

fix issue with async.waterfall, only pass result if its not undefined

* feat: add callbackify to redis/psql

* feat: psql use await

* fix: redis 🌋

* feat: less returns

* feat: more await rewrite

* fix: redis tests

* feat: convert sortedSetAdd

rewrite psql transaction to async/await

* feat: 🐶

* feat: test

* feat: log client and query

* feat: log bind

* feat: more logs

* feat: more logs

* feat: check perform

* feat: dont callbackify transaction

* feat: remove logs

* fix: main functions

* feat: more logs

* fix: increment

* fix: rename

* feat: remove cls

* fix: remove console.log

* feat: add deprecation message to .async usage

* feat: update more dbal methods

* fix: redis :voodoo:

* feat:  fix redis zrem, convert setObject

* feat: upgrade getObject methods

* fix: psql getObjectField

* fix: redis tests

* feat: getObjectKeys

* feat: getObjectValues

* feat: isObjectField

* fix: add missing return

* feat: delObjectField

* feat: incrObjectField

* fix: add missing await

* feat: remove exposed helpers

* feat: list methods

* feat: flush/empty

* feat: delete

* fix: redis delete all

* feat: get/set

* feat: incr/rename

* feat: type

* feat: expire

* feat: setAdd

* feat: setRemove

* feat: isSetMember

* feat: getSetMembers

* feat: setCount, setRemoveRandom

* feat: zcard,zcount

* feat: sortedSetRank

* feat: isSortedSetMember

* feat: zincrby

* feat: sortedSetLex

* feat: processSortedSet

* fix: add mising await

* feat: debug psql

* fix: psql test

* fix: test

* fix: another test

* fix: test fix

* fix: psql tests

* feat: remove logs

* feat: user arrow func

use builtin async promises

* feat: topic bookmarks

* feat: topic.delete

* feat: topic.restore

* feat: topics.purge

* feat: merge

* feat: suggested

* feat: topics/user.js

* feat: topics modules

* feat: topics/follow

* fix: deprecation msg

* feat: fork

* feat: topics/posts

* feat: sorted/recent

* feat: topic/teaser

* feat: topics/tools

* feat: topics/unread

* feat: add back node versions

disable deprecation notice
wrap async controllers in try/catch

* feat: use db directly

* feat: promisify in place

* fix: redis/psql

* feat: deprecation message

logs for psql

* feat: more logs

* feat: more logs

* feat: logs again

* feat: more logs

* fix: call release

* feat: restore travis, remove logs

* fix: loops

* feat: remove .async. usage
2019-07-09 12:46:49 -04:00
Barış Soner Uşaklı
bd640a1107 Topic await errors (#7727)
* feat: derp await

* feat: restore user.getSettings

* feat: cleanup

* feat: make tid const

* feat: cleanup

* fix: tests

* feat: deprecate filter:controllers.topic.get

* feat: rewrite post-index logic

* feat: change calculation to match others

* fix: use .async

* feat: remove try/catch wrapper
2019-07-03 12:48:26 -04:00
Barış Soner Uşaklı
3ecd703ea3 feat: #7707, added sortedSetAddBulk 2019-06-24 17:48:13 -04:00
Barış Soner Uşaklı
a39f0ef592 fix: #5570, create per category user post zsets 2019-06-24 15:21:43 -04:00