@aurora-interactive/sensei-productivity 1.7.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/commonjs/funcs/categories-create.d.ts +1 -1
- package/dist/commonjs/funcs/categories-create.d.ts.map +1 -1
- package/dist/commonjs/funcs/categories-create.js +3 -2
- package/dist/commonjs/funcs/categories-create.js.map +1 -1
- package/dist/commonjs/funcs/categories-delete.js +2 -2
- package/dist/commonjs/funcs/categories-delete.js.map +1 -1
- package/dist/commonjs/funcs/categories-get-all.d.ts +1 -1
- package/dist/commonjs/funcs/categories-get-all.d.ts.map +1 -1
- package/dist/commonjs/funcs/categories-get-all.js +3 -2
- package/dist/commonjs/funcs/categories-get-all.js.map +1 -1
- package/dist/commonjs/funcs/categories-update.d.ts +1 -1
- package/dist/commonjs/funcs/categories-update.d.ts.map +1 -1
- package/dist/commonjs/funcs/categories-update.js +3 -2
- package/dist/commonjs/funcs/categories-update.js.map +1 -1
- package/dist/commonjs/funcs/schools-get-all.js +2 -2
- package/dist/commonjs/funcs/schools-get-all.js.map +1 -1
- package/dist/commonjs/funcs/schools-get.d.ts +1 -1
- package/dist/commonjs/funcs/schools-get.d.ts.map +1 -1
- package/dist/commonjs/funcs/schools-get.js +3 -2
- package/dist/commonjs/funcs/schools-get.js.map +1 -1
- package/dist/commonjs/funcs/schools-leaderboard.d.ts +14 -0
- package/dist/commonjs/funcs/schools-leaderboard.d.ts.map +1 -0
- package/dist/commonjs/funcs/schools-leaderboard.js +126 -0
- package/dist/commonjs/funcs/schools-leaderboard.js.map +1 -0
- package/dist/commonjs/funcs/users-activities-create.d.ts +1 -1
- package/dist/commonjs/funcs/users-activities-create.d.ts.map +1 -1
- package/dist/commonjs/funcs/users-activities-create.js +3 -2
- package/dist/commonjs/funcs/users-activities-create.js.map +1 -1
- package/dist/commonjs/funcs/users-activities-delete.js +2 -2
- package/dist/commonjs/funcs/users-activities-delete.js.map +1 -1
- package/dist/commonjs/funcs/users-activities-get-all-of-user.d.ts +1 -1
- package/dist/commonjs/funcs/users-activities-get-all-of-user.d.ts.map +1 -1
- package/dist/commonjs/funcs/users-activities-get-all-of-user.js +3 -2
- package/dist/commonjs/funcs/users-activities-get-all-of-user.js.map +1 -1
- package/dist/commonjs/funcs/users-activities-get.d.ts +1 -1
- package/dist/commonjs/funcs/users-activities-get.d.ts.map +1 -1
- package/dist/commonjs/funcs/users-activities-get.js +3 -2
- package/dist/commonjs/funcs/users-activities-get.js.map +1 -1
- package/dist/commonjs/funcs/users-activities-me.d.ts +1 -1
- package/dist/commonjs/funcs/users-activities-me.d.ts.map +1 -1
- package/dist/commonjs/funcs/users-activities-me.js +3 -2
- package/dist/commonjs/funcs/users-activities-me.js.map +1 -1
- package/dist/commonjs/funcs/users-activities-update.d.ts +1 -1
- package/dist/commonjs/funcs/users-activities-update.d.ts.map +1 -1
- package/dist/commonjs/funcs/users-activities-update.js +3 -2
- package/dist/commonjs/funcs/users-activities-update.js.map +1 -1
- package/dist/commonjs/funcs/users-delete.js +2 -2
- package/dist/commonjs/funcs/users-delete.js.map +1 -1
- package/dist/commonjs/funcs/users-friends-accept.js +2 -2
- package/dist/commonjs/funcs/users-friends-accept.js.map +1 -1
- package/dist/commonjs/funcs/users-friends-list.d.ts +1 -1
- package/dist/commonjs/funcs/users-friends-list.d.ts.map +1 -1
- package/dist/commonjs/funcs/users-friends-list.js +3 -2
- package/dist/commonjs/funcs/users-friends-list.js.map +1 -1
- package/dist/commonjs/funcs/users-friends-pending.d.ts +1 -1
- package/dist/commonjs/funcs/users-friends-pending.d.ts.map +1 -1
- package/dist/commonjs/funcs/users-friends-pending.js +3 -2
- package/dist/commonjs/funcs/users-friends-pending.js.map +1 -1
- package/dist/commonjs/funcs/users-friends-reject.js +2 -2
- package/dist/commonjs/funcs/users-friends-reject.js.map +1 -1
- package/dist/commonjs/funcs/users-friends-remove.js +2 -2
- package/dist/commonjs/funcs/users-friends-remove.js.map +1 -1
- package/dist/commonjs/funcs/users-friends-send-request.js +2 -2
- package/dist/commonjs/funcs/users-friends-send-request.js.map +1 -1
- package/dist/commonjs/funcs/users-get.d.ts +1 -1
- package/dist/commonjs/funcs/users-get.d.ts.map +1 -1
- package/dist/commonjs/funcs/users-get.js +3 -2
- package/dist/commonjs/funcs/users-get.js.map +1 -1
- package/dist/commonjs/funcs/users-login.d.ts +1 -1
- package/dist/commonjs/funcs/users-login.d.ts.map +1 -1
- package/dist/commonjs/funcs/users-login.js +3 -2
- package/dist/commonjs/funcs/users-login.js.map +1 -1
- package/dist/commonjs/funcs/users-me.d.ts +1 -1
- package/dist/commonjs/funcs/users-me.d.ts.map +1 -1
- package/dist/commonjs/funcs/users-me.js +3 -2
- package/dist/commonjs/funcs/users-me.js.map +1 -1
- package/dist/commonjs/funcs/users-posts-delete.js +2 -2
- package/dist/commonjs/funcs/users-posts-delete.js.map +1 -1
- package/dist/commonjs/funcs/users-posts-feed.d.ts +1 -1
- package/dist/commonjs/funcs/users-posts-feed.d.ts.map +1 -1
- package/dist/commonjs/funcs/users-posts-feed.js +3 -2
- package/dist/commonjs/funcs/users-posts-feed.js.map +1 -1
- package/dist/commonjs/funcs/users-posts-get-by-post-id.d.ts +1 -1
- package/dist/commonjs/funcs/users-posts-get-by-post-id.d.ts.map +1 -1
- package/dist/commonjs/funcs/users-posts-get-by-post-id.js +3 -2
- package/dist/commonjs/funcs/users-posts-get-by-post-id.js.map +1 -1
- package/dist/commonjs/funcs/users-posts-get-by-user-id.d.ts +1 -1
- package/dist/commonjs/funcs/users-posts-get-by-user-id.d.ts.map +1 -1
- package/dist/commonjs/funcs/users-posts-get-by-user-id.js +3 -2
- package/dist/commonjs/funcs/users-posts-get-by-user-id.js.map +1 -1
- package/dist/commonjs/funcs/users-posts-like.js +2 -2
- package/dist/commonjs/funcs/users-posts-like.js.map +1 -1
- package/dist/commonjs/funcs/users-posts-remove-like.js +2 -2
- package/dist/commonjs/funcs/users-posts-remove-like.js.map +1 -1
- package/dist/commonjs/funcs/users-posts-update.d.ts +1 -1
- package/dist/commonjs/funcs/users-posts-update.d.ts.map +1 -1
- package/dist/commonjs/funcs/users-posts-update.js +3 -2
- package/dist/commonjs/funcs/users-posts-update.js.map +1 -1
- package/dist/commonjs/funcs/users-signup.d.ts +1 -1
- package/dist/commonjs/funcs/users-signup.d.ts.map +1 -1
- package/dist/commonjs/funcs/users-signup.js +3 -2
- package/dist/commonjs/funcs/users-signup.js.map +1 -1
- package/dist/commonjs/funcs/users-update.d.ts +1 -1
- package/dist/commonjs/funcs/users-update.d.ts.map +1 -1
- package/dist/commonjs/funcs/users-update.js +3 -2
- package/dist/commonjs/funcs/users-update.js.map +1 -1
- package/dist/commonjs/lib/config.d.ts +4 -4
- package/dist/commonjs/lib/config.js +4 -4
- package/dist/commonjs/lib/encodings.d.ts.map +1 -1
- package/dist/commonjs/lib/encodings.js +20 -5
- package/dist/commonjs/lib/encodings.js.map +1 -1
- package/dist/commonjs/lib/files.d.ts +13 -0
- package/dist/commonjs/lib/files.d.ts.map +1 -1
- package/dist/commonjs/lib/files.js +19 -0
- package/dist/commonjs/lib/files.js.map +1 -1
- package/dist/commonjs/lib/sdks.d.ts.map +1 -1
- package/dist/commonjs/lib/sdks.js +8 -4
- package/dist/commonjs/lib/sdks.js.map +1 -1
- package/dist/commonjs/lib/security.d.ts +1 -1
- package/dist/commonjs/lib/security.d.ts.map +1 -1
- package/dist/commonjs/lib/security.js +19 -8
- package/dist/commonjs/lib/security.js.map +1 -1
- package/dist/commonjs/lib/url.d.ts.map +1 -1
- package/dist/commonjs/lib/url.js +4 -2
- package/dist/commonjs/lib/url.js.map +1 -1
- package/dist/commonjs/models/operations/get-feed.d.ts +1 -0
- package/dist/commonjs/models/operations/get-feed.d.ts.map +1 -1
- package/dist/commonjs/models/operations/get-feed.js +1 -0
- package/dist/commonjs/models/operations/get-feed.js.map +1 -1
- package/dist/commonjs/models/operations/get-post-by-id.d.ts +1 -0
- package/dist/commonjs/models/operations/get-post-by-id.d.ts.map +1 -1
- package/dist/commonjs/models/operations/get-post-by-id.js +1 -0
- package/dist/commonjs/models/operations/get-post-by-id.js.map +1 -1
- package/dist/commonjs/models/operations/get-top-schools.d.ts +22 -0
- package/dist/commonjs/models/operations/get-top-schools.d.ts.map +1 -0
- package/dist/commonjs/models/operations/get-top-schools.js +61 -0
- package/dist/commonjs/models/operations/get-top-schools.js.map +1 -0
- package/dist/commonjs/models/operations/get-user-posts.d.ts +1 -0
- package/dist/commonjs/models/operations/get-user-posts.d.ts.map +1 -1
- package/dist/commonjs/models/operations/get-user-posts.js +1 -0
- package/dist/commonjs/models/operations/get-user-posts.js.map +1 -1
- package/dist/commonjs/models/operations/index.d.ts +1 -0
- package/dist/commonjs/models/operations/index.d.ts.map +1 -1
- package/dist/commonjs/models/operations/index.js +1 -0
- package/dist/commonjs/models/operations/index.js.map +1 -1
- package/dist/commonjs/sdk/activities.d.ts +5 -5
- package/dist/commonjs/sdk/activities.d.ts.map +1 -1
- package/dist/commonjs/sdk/categories.d.ts +3 -3
- package/dist/commonjs/sdk/categories.d.ts.map +1 -1
- package/dist/commonjs/sdk/friends.d.ts +2 -2
- package/dist/commonjs/sdk/friends.d.ts.map +1 -1
- package/dist/commonjs/sdk/posts.d.ts +4 -4
- package/dist/commonjs/sdk/posts.d.ts.map +1 -1
- package/dist/commonjs/sdk/schools.d.ts +5 -1
- package/dist/commonjs/sdk/schools.d.ts.map +1 -1
- package/dist/commonjs/sdk/schools.js +7 -0
- package/dist/commonjs/sdk/schools.js.map +1 -1
- package/dist/commonjs/sdk/users.d.ts +5 -5
- package/dist/commonjs/sdk/users.d.ts.map +1 -1
- package/dist/esm/funcs/categories-create.d.ts +1 -1
- package/dist/esm/funcs/categories-create.d.ts.map +1 -1
- package/dist/esm/funcs/categories-create.js +3 -2
- package/dist/esm/funcs/categories-create.js.map +1 -1
- package/dist/esm/funcs/categories-delete.js +2 -2
- package/dist/esm/funcs/categories-delete.js.map +1 -1
- package/dist/esm/funcs/categories-get-all.d.ts +1 -1
- package/dist/esm/funcs/categories-get-all.d.ts.map +1 -1
- package/dist/esm/funcs/categories-get-all.js +3 -2
- package/dist/esm/funcs/categories-get-all.js.map +1 -1
- package/dist/esm/funcs/categories-update.d.ts +1 -1
- package/dist/esm/funcs/categories-update.d.ts.map +1 -1
- package/dist/esm/funcs/categories-update.js +3 -2
- package/dist/esm/funcs/categories-update.js.map +1 -1
- package/dist/esm/funcs/schools-get-all.js +2 -2
- package/dist/esm/funcs/schools-get-all.js.map +1 -1
- package/dist/esm/funcs/schools-get.d.ts +1 -1
- package/dist/esm/funcs/schools-get.d.ts.map +1 -1
- package/dist/esm/funcs/schools-get.js +3 -2
- package/dist/esm/funcs/schools-get.js.map +1 -1
- package/dist/esm/funcs/schools-leaderboard.d.ts +14 -0
- package/dist/esm/funcs/schools-leaderboard.d.ts.map +1 -0
- package/dist/esm/funcs/schools-leaderboard.js +90 -0
- package/dist/esm/funcs/schools-leaderboard.js.map +1 -0
- package/dist/esm/funcs/users-activities-create.d.ts +1 -1
- package/dist/esm/funcs/users-activities-create.d.ts.map +1 -1
- package/dist/esm/funcs/users-activities-create.js +3 -2
- package/dist/esm/funcs/users-activities-create.js.map +1 -1
- package/dist/esm/funcs/users-activities-delete.js +2 -2
- package/dist/esm/funcs/users-activities-delete.js.map +1 -1
- package/dist/esm/funcs/users-activities-get-all-of-user.d.ts +1 -1
- package/dist/esm/funcs/users-activities-get-all-of-user.d.ts.map +1 -1
- package/dist/esm/funcs/users-activities-get-all-of-user.js +3 -2
- package/dist/esm/funcs/users-activities-get-all-of-user.js.map +1 -1
- package/dist/esm/funcs/users-activities-get.d.ts +1 -1
- package/dist/esm/funcs/users-activities-get.d.ts.map +1 -1
- package/dist/esm/funcs/users-activities-get.js +3 -2
- package/dist/esm/funcs/users-activities-get.js.map +1 -1
- package/dist/esm/funcs/users-activities-me.d.ts +1 -1
- package/dist/esm/funcs/users-activities-me.d.ts.map +1 -1
- package/dist/esm/funcs/users-activities-me.js +3 -2
- package/dist/esm/funcs/users-activities-me.js.map +1 -1
- package/dist/esm/funcs/users-activities-update.d.ts +1 -1
- package/dist/esm/funcs/users-activities-update.d.ts.map +1 -1
- package/dist/esm/funcs/users-activities-update.js +3 -2
- package/dist/esm/funcs/users-activities-update.js.map +1 -1
- package/dist/esm/funcs/users-delete.js +2 -2
- package/dist/esm/funcs/users-delete.js.map +1 -1
- package/dist/esm/funcs/users-friends-accept.js +2 -2
- package/dist/esm/funcs/users-friends-accept.js.map +1 -1
- package/dist/esm/funcs/users-friends-list.d.ts +1 -1
- package/dist/esm/funcs/users-friends-list.d.ts.map +1 -1
- package/dist/esm/funcs/users-friends-list.js +3 -2
- package/dist/esm/funcs/users-friends-list.js.map +1 -1
- package/dist/esm/funcs/users-friends-pending.d.ts +1 -1
- package/dist/esm/funcs/users-friends-pending.d.ts.map +1 -1
- package/dist/esm/funcs/users-friends-pending.js +3 -2
- package/dist/esm/funcs/users-friends-pending.js.map +1 -1
- package/dist/esm/funcs/users-friends-reject.js +2 -2
- package/dist/esm/funcs/users-friends-reject.js.map +1 -1
- package/dist/esm/funcs/users-friends-remove.js +2 -2
- package/dist/esm/funcs/users-friends-remove.js.map +1 -1
- package/dist/esm/funcs/users-friends-send-request.js +2 -2
- package/dist/esm/funcs/users-friends-send-request.js.map +1 -1
- package/dist/esm/funcs/users-get.d.ts +1 -1
- package/dist/esm/funcs/users-get.d.ts.map +1 -1
- package/dist/esm/funcs/users-get.js +3 -2
- package/dist/esm/funcs/users-get.js.map +1 -1
- package/dist/esm/funcs/users-login.d.ts +1 -1
- package/dist/esm/funcs/users-login.d.ts.map +1 -1
- package/dist/esm/funcs/users-login.js +3 -2
- package/dist/esm/funcs/users-login.js.map +1 -1
- package/dist/esm/funcs/users-me.d.ts +1 -1
- package/dist/esm/funcs/users-me.d.ts.map +1 -1
- package/dist/esm/funcs/users-me.js +3 -2
- package/dist/esm/funcs/users-me.js.map +1 -1
- package/dist/esm/funcs/users-posts-delete.js +2 -2
- package/dist/esm/funcs/users-posts-delete.js.map +1 -1
- package/dist/esm/funcs/users-posts-feed.d.ts +1 -1
- package/dist/esm/funcs/users-posts-feed.d.ts.map +1 -1
- package/dist/esm/funcs/users-posts-feed.js +3 -2
- package/dist/esm/funcs/users-posts-feed.js.map +1 -1
- package/dist/esm/funcs/users-posts-get-by-post-id.d.ts +1 -1
- package/dist/esm/funcs/users-posts-get-by-post-id.d.ts.map +1 -1
- package/dist/esm/funcs/users-posts-get-by-post-id.js +3 -2
- package/dist/esm/funcs/users-posts-get-by-post-id.js.map +1 -1
- package/dist/esm/funcs/users-posts-get-by-user-id.d.ts +1 -1
- package/dist/esm/funcs/users-posts-get-by-user-id.d.ts.map +1 -1
- package/dist/esm/funcs/users-posts-get-by-user-id.js +3 -2
- package/dist/esm/funcs/users-posts-get-by-user-id.js.map +1 -1
- package/dist/esm/funcs/users-posts-like.js +2 -2
- package/dist/esm/funcs/users-posts-like.js.map +1 -1
- package/dist/esm/funcs/users-posts-remove-like.js +2 -2
- package/dist/esm/funcs/users-posts-remove-like.js.map +1 -1
- package/dist/esm/funcs/users-posts-update.d.ts +1 -1
- package/dist/esm/funcs/users-posts-update.d.ts.map +1 -1
- package/dist/esm/funcs/users-posts-update.js +3 -2
- package/dist/esm/funcs/users-posts-update.js.map +1 -1
- package/dist/esm/funcs/users-signup.d.ts +1 -1
- package/dist/esm/funcs/users-signup.d.ts.map +1 -1
- package/dist/esm/funcs/users-signup.js +3 -2
- package/dist/esm/funcs/users-signup.js.map +1 -1
- package/dist/esm/funcs/users-update.d.ts +1 -1
- package/dist/esm/funcs/users-update.d.ts.map +1 -1
- package/dist/esm/funcs/users-update.js +3 -2
- package/dist/esm/funcs/users-update.js.map +1 -1
- package/dist/esm/lib/config.d.ts +4 -4
- package/dist/esm/lib/config.js +4 -4
- package/dist/esm/lib/encodings.d.ts.map +1 -1
- package/dist/esm/lib/encodings.js +20 -5
- package/dist/esm/lib/encodings.js.map +1 -1
- package/dist/esm/lib/files.d.ts +13 -0
- package/dist/esm/lib/files.d.ts.map +1 -1
- package/dist/esm/lib/files.js +18 -0
- package/dist/esm/lib/files.js.map +1 -1
- package/dist/esm/lib/sdks.d.ts.map +1 -1
- package/dist/esm/lib/sdks.js +8 -4
- package/dist/esm/lib/sdks.js.map +1 -1
- package/dist/esm/lib/security.d.ts +1 -1
- package/dist/esm/lib/security.d.ts.map +1 -1
- package/dist/esm/lib/security.js +19 -8
- package/dist/esm/lib/security.js.map +1 -1
- package/dist/esm/lib/url.d.ts.map +1 -1
- package/dist/esm/lib/url.js +4 -2
- package/dist/esm/lib/url.js.map +1 -1
- package/dist/esm/models/operations/get-feed.d.ts +1 -0
- package/dist/esm/models/operations/get-feed.d.ts.map +1 -1
- package/dist/esm/models/operations/get-feed.js +1 -0
- package/dist/esm/models/operations/get-feed.js.map +1 -1
- package/dist/esm/models/operations/get-post-by-id.d.ts +1 -0
- package/dist/esm/models/operations/get-post-by-id.d.ts.map +1 -1
- package/dist/esm/models/operations/get-post-by-id.js +1 -0
- package/dist/esm/models/operations/get-post-by-id.js.map +1 -1
- package/dist/esm/models/operations/get-top-schools.d.ts +22 -0
- package/dist/esm/models/operations/get-top-schools.d.ts.map +1 -0
- package/dist/esm/models/operations/get-top-schools.js +23 -0
- package/dist/esm/models/operations/get-top-schools.js.map +1 -0
- package/dist/esm/models/operations/get-user-posts.d.ts +1 -0
- package/dist/esm/models/operations/get-user-posts.d.ts.map +1 -1
- package/dist/esm/models/operations/get-user-posts.js +1 -0
- package/dist/esm/models/operations/get-user-posts.js.map +1 -1
- package/dist/esm/models/operations/index.d.ts +1 -0
- package/dist/esm/models/operations/index.d.ts.map +1 -1
- package/dist/esm/models/operations/index.js +1 -0
- package/dist/esm/models/operations/index.js.map +1 -1
- package/dist/esm/sdk/activities.d.ts +5 -5
- package/dist/esm/sdk/activities.d.ts.map +1 -1
- package/dist/esm/sdk/categories.d.ts +3 -3
- package/dist/esm/sdk/categories.d.ts.map +1 -1
- package/dist/esm/sdk/friends.d.ts +2 -2
- package/dist/esm/sdk/friends.d.ts.map +1 -1
- package/dist/esm/sdk/posts.d.ts +4 -4
- package/dist/esm/sdk/posts.d.ts.map +1 -1
- package/dist/esm/sdk/schools.d.ts +5 -1
- package/dist/esm/sdk/schools.d.ts.map +1 -1
- package/dist/esm/sdk/schools.js +7 -0
- package/dist/esm/sdk/schools.js.map +1 -1
- package/dist/esm/sdk/users.d.ts +5 -5
- package/dist/esm/sdk/users.d.ts.map +1 -1
- package/jsr.json +1 -1
- package/package.json +1 -1
- package/rest-api/cypress/e2e/school-endpoints.cy.js +58 -0
- package/rest-api/cypress/e2e/user-endpoints.cy.js +1 -1
- package/rest-api/cypress.config.ts +0 -1
- package/rest-api/index.js +34 -6
- package/rest-api/lib/users.js +37 -0
- package/rest-api/routes/ActivityPostFunctions.js +20 -11
- package/rest-api/routes/FriendFunctions.js +2 -35
- package/rest-api/routes/SchoolFunctions.js +50 -0
- package/rest-api/routes/UserActivityFunctions.js +26 -1
- package/src/funcs/categories-create.ts +14 -6
- package/src/funcs/categories-delete.ts +3 -3
- package/src/funcs/categories-get-all.ts +14 -6
- package/src/funcs/categories-update.ts +14 -7
- package/src/funcs/schools-get-all.ts +2 -2
- package/src/funcs/schools-get.ts +11 -7
- package/src/funcs/schools-leaderboard.ts +184 -0
- package/src/funcs/users-activities-create.ts +14 -6
- package/src/funcs/users-activities-delete.ts +3 -3
- package/src/funcs/users-activities-get-all-of-user.ts +18 -7
- package/src/funcs/users-activities-get.ts +14 -7
- package/src/funcs/users-activities-me.ts +14 -6
- package/src/funcs/users-activities-update.ts +14 -7
- package/src/funcs/users-delete.ts +3 -3
- package/src/funcs/users-friends-accept.ts +3 -3
- package/src/funcs/users-friends-list.ts +14 -7
- package/src/funcs/users-friends-pending.ts +15 -6
- package/src/funcs/users-friends-reject.ts +3 -3
- package/src/funcs/users-friends-remove.ts +3 -3
- package/src/funcs/users-friends-send-request.ts +3 -3
- package/src/funcs/users-get.ts +11 -7
- package/src/funcs/users-login.ts +11 -6
- package/src/funcs/users-me.ts +14 -6
- package/src/funcs/users-posts-delete.ts +3 -3
- package/src/funcs/users-posts-feed.ts +14 -6
- package/src/funcs/users-posts-get-by-post-id.ts +11 -7
- package/src/funcs/users-posts-get-by-user-id.ts +14 -7
- package/src/funcs/users-posts-like.ts +3 -3
- package/src/funcs/users-posts-remove-like.ts +3 -3
- package/src/funcs/users-posts-update.ts +11 -7
- package/src/funcs/users-signup.ts +8 -6
- package/src/funcs/users-update.ts +11 -7
- package/src/lib/config.ts +4 -4
- package/src/lib/encodings.ts +23 -4
- package/src/lib/files.ts +22 -0
- package/src/lib/sdks.ts +7 -5
- package/src/lib/security.ts +14 -2
- package/src/lib/url.ts +16 -14
- package/src/models/operations/get-feed.ts +2 -0
- package/src/models/operations/get-post-by-id.ts +2 -0
- package/src/models/operations/get-top-schools.ts +60 -0
- package/src/models/operations/get-user-posts.ts +2 -0
- package/src/models/operations/index.ts +1 -0
- package/src/sdk/activities.ts +5 -5
- package/src/sdk/categories.ts +3 -3
- package/src/sdk/friends.ts +2 -2
- package/src/sdk/posts.ts +4 -4
- package/src/sdk/schools.ts +16 -1
- package/src/sdk/users.ts +5 -5
|
@@ -4,15 +4,15 @@ export declare class Categories extends ClientSDK {
|
|
|
4
4
|
/**
|
|
5
5
|
* List all categories
|
|
6
6
|
*/
|
|
7
|
-
getAll(options?: RequestOptions): Promise<Array<operations.ListCategoriesResponse
|
|
7
|
+
getAll(options?: RequestOptions): Promise<Array<operations.ListCategoriesResponse> | undefined>;
|
|
8
8
|
/**
|
|
9
9
|
* Create a new category (school admins only)
|
|
10
10
|
*/
|
|
11
|
-
create(request: operations.CreateCategoryRequest, options?: RequestOptions): Promise<operations.CreateCategoryResponse>;
|
|
11
|
+
create(request: operations.CreateCategoryRequest, options?: RequestOptions): Promise<operations.CreateCategoryResponse | undefined>;
|
|
12
12
|
/**
|
|
13
13
|
* Update a category (school admins only)
|
|
14
14
|
*/
|
|
15
|
-
update(request: operations.UpdateCategoryRequest, options?: RequestOptions): Promise<operations.UpdateCategoryResponse>;
|
|
15
|
+
update(request: operations.UpdateCategoryRequest, options?: RequestOptions): Promise<operations.UpdateCategoryResponse | undefined>;
|
|
16
16
|
/**
|
|
17
17
|
* Delete a category (school admins only)
|
|
18
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../../src/sdk/categories.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAG5D,qBAAa,UAAW,SAAQ,SAAS;IACvC;;OAEG;IACG,MAAM,CACV,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../../src/sdk/categories.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAG5D,qBAAa,UAAW,SAAQ,SAAS;IACvC;;OAEG;IACG,MAAM,CACV,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAC;IAOhE;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,UAAU,CAAC,qBAAqB,EACzC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAQzD;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,UAAU,CAAC,qBAAqB,EACzC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAQzD;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,UAAU,CAAC,qBAAqB,EACzC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;CAOjB"}
|
|
@@ -4,11 +4,11 @@ export declare class Friends extends ClientSDK {
|
|
|
4
4
|
/**
|
|
5
5
|
* List a user's friends
|
|
6
6
|
*/
|
|
7
|
-
list(request: operations.ListFriendsRequest, options?: RequestOptions): Promise<Array<operations.ListFriendsResponse
|
|
7
|
+
list(request: operations.ListFriendsRequest, options?: RequestOptions): Promise<Array<operations.ListFriendsResponse> | undefined>;
|
|
8
8
|
/**
|
|
9
9
|
* Get all pending friend requests
|
|
10
10
|
*/
|
|
11
|
-
pending(options?: RequestOptions): Promise<Array<operations.PendingFriendRequestsResponse
|
|
11
|
+
pending(options?: RequestOptions): Promise<Array<operations.PendingFriendRequestsResponse> | undefined>;
|
|
12
12
|
/**
|
|
13
13
|
* Send a friend request to a user
|
|
14
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"friends.d.ts","sourceRoot":"","sources":["../../../src/sdk/friends.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAG5D,qBAAa,OAAQ,SAAQ,SAAS;IACpC;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,UAAU,CAAC,kBAAkB,EACtC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"friends.d.ts","sourceRoot":"","sources":["../../../src/sdk/friends.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAG5D,qBAAa,OAAQ,SAAQ,SAAS;IACpC;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,UAAU,CAAC,kBAAkB,EACtC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;IAQ7D;;OAEG;IACG,OAAO,CACX,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,6BAA6B,CAAC,GAAG,SAAS,CAAC;IAOvE;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,UAAU,CAAC,wBAAwB,EAC5C,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,UAAU,CAAC,0BAA0B,EAC9C,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,UAAU,CAAC,0BAA0B,EAC9C,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,UAAU,CAAC,mBAAmB,EACvC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;CAOjB"}
|
package/dist/esm/sdk/posts.d.ts
CHANGED
|
@@ -4,19 +4,19 @@ export declare class Posts extends ClientSDK {
|
|
|
4
4
|
/**
|
|
5
5
|
* Get a user's posts (respects post visibility)
|
|
6
6
|
*/
|
|
7
|
-
getByUserId(request: operations.GetUserPostsRequest, options?: RequestOptions): Promise<Array<operations.GetUserPostsResponse
|
|
7
|
+
getByUserId(request: operations.GetUserPostsRequest, options?: RequestOptions): Promise<Array<operations.GetUserPostsResponse> | undefined>;
|
|
8
8
|
/**
|
|
9
9
|
* Get the social feed of posts from the authenticated user's friends
|
|
10
10
|
*/
|
|
11
|
-
feed(request?: operations.GetFeedRequest | undefined, options?: RequestOptions): Promise<Array<operations.GetFeedResponse
|
|
11
|
+
feed(request?: operations.GetFeedRequest | undefined, options?: RequestOptions): Promise<Array<operations.GetFeedResponse> | undefined>;
|
|
12
12
|
/**
|
|
13
13
|
* Get a specific post by ID
|
|
14
14
|
*/
|
|
15
|
-
getByPostId(request: operations.GetPostByIdRequest, options?: RequestOptions): Promise<operations.GetPostByIdResponse>;
|
|
15
|
+
getByPostId(request: operations.GetPostByIdRequest, options?: RequestOptions): Promise<operations.GetPostByIdResponse | undefined>;
|
|
16
16
|
/**
|
|
17
17
|
* Update a post's caption or visibility
|
|
18
18
|
*/
|
|
19
|
-
update(request: operations.UpdatePostRequest, options?: RequestOptions): Promise<operations.UpdatePostResponse>;
|
|
19
|
+
update(request: operations.UpdatePostRequest, options?: RequestOptions): Promise<operations.UpdatePostResponse | undefined>;
|
|
20
20
|
/**
|
|
21
21
|
* Delete a post
|
|
22
22
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posts.d.ts","sourceRoot":"","sources":["../../../src/sdk/posts.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAG5D,qBAAa,KAAM,SAAQ,SAAS;IAClC;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,UAAU,CAAC,mBAAmB,EACvC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"posts.d.ts","sourceRoot":"","sources":["../../../src/sdk/posts.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAG5D,qBAAa,KAAM,SAAQ,SAAS;IAClC;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,UAAU,CAAC,mBAAmB,EACvC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAC;IAQ9D;;OAEG;IACG,IAAI,CACR,OAAO,CAAC,EAAE,UAAU,CAAC,cAAc,GAAG,SAAS,EAC/C,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IAQzD;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,UAAU,CAAC,kBAAkB,EACtC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAQtD;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,UAAU,CAAC,iBAAiB,EACrC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAQrD;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,UAAU,CAAC,iBAAiB,EACrC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,UAAU,CAAC,eAAe,EACnC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACG,UAAU,CACd,OAAO,EAAE,UAAU,CAAC,iBAAiB,EACrC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;CAOjB"}
|
|
@@ -5,9 +5,13 @@ export declare class Schools extends ClientSDK {
|
|
|
5
5
|
* List all schools with user counts
|
|
6
6
|
*/
|
|
7
7
|
getAll(options?: RequestOptions): Promise<Array<operations.ListSchoolsResponse>>;
|
|
8
|
+
/**
|
|
9
|
+
* Get the top 10 schools (by points) in order
|
|
10
|
+
*/
|
|
11
|
+
leaderboard(request?: operations.GetTopSchoolsRequest | undefined, options?: RequestOptions): Promise<Array<operations.GetTopSchoolsResponse> | undefined>;
|
|
8
12
|
/**
|
|
9
13
|
* Get a school's details by ID
|
|
10
14
|
*/
|
|
11
|
-
get(request: operations.GetSchoolByIdRequest, options?: RequestOptions): Promise<operations.GetSchoolByIdResponse>;
|
|
15
|
+
get(request: operations.GetSchoolByIdRequest, options?: RequestOptions): Promise<operations.GetSchoolByIdResponse | undefined>;
|
|
12
16
|
}
|
|
13
17
|
//# sourceMappingURL=schools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schools.d.ts","sourceRoot":"","sources":["../../../src/sdk/schools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schools.d.ts","sourceRoot":"","sources":["../../../src/sdk/schools.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAG5D,qBAAa,OAAQ,SAAQ,SAAS;IACpC;;OAEG;IACG,MAAM,CACV,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAOjD;;OAEG;IACG,WAAW,CACf,OAAO,CAAC,EAAE,UAAU,CAAC,oBAAoB,GAAG,SAAS,EACrD,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAC;IAQ/D;;OAEG;IACG,GAAG,CACP,OAAO,EAAE,UAAU,CAAC,oBAAoB,EACxC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,qBAAqB,GAAG,SAAS,CAAC;CAOzD"}
|
package/dist/esm/sdk/schools.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { schoolsGetAll } from "../funcs/schools-get-all.js";
|
|
5
5
|
import { schoolsGet } from "../funcs/schools-get.js";
|
|
6
|
+
import { schoolsLeaderboard } from "../funcs/schools-leaderboard.js";
|
|
6
7
|
import { ClientSDK } from "../lib/sdks.js";
|
|
7
8
|
import { unwrapAsync } from "../types/fp.js";
|
|
8
9
|
export class Schools extends ClientSDK {
|
|
@@ -12,6 +13,12 @@ export class Schools extends ClientSDK {
|
|
|
12
13
|
async getAll(options) {
|
|
13
14
|
return unwrapAsync(schoolsGetAll(this, options));
|
|
14
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Get the top 10 schools (by points) in order
|
|
18
|
+
*/
|
|
19
|
+
async leaderboard(request, options) {
|
|
20
|
+
return unwrapAsync(schoolsLeaderboard(this, request, options));
|
|
21
|
+
}
|
|
15
22
|
/**
|
|
16
23
|
* Get a school's details by ID
|
|
17
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schools.js","sourceRoot":"","sources":["../../../src/sdk/schools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAkB,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,OAAO,OAAQ,SAAQ,SAAS;IACpC;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,OAAwB;QAExB,OAAO,WAAW,CAAC,aAAa,CAC9B,IAAI,EACJ,OAAO,CACR,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CACP,OAAwC,EACxC,OAAwB;QAExB,OAAO,WAAW,CAAC,UAAU,CAC3B,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"schools.js","sourceRoot":"","sources":["../../../src/sdk/schools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAkB,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,OAAO,OAAQ,SAAQ,SAAS;IACpC;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,OAAwB;QAExB,OAAO,WAAW,CAAC,aAAa,CAC9B,IAAI,EACJ,OAAO,CACR,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,OAAqD,EACrD,OAAwB;QAExB,OAAO,WAAW,CAAC,kBAAkB,CACnC,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CACP,OAAwC,EACxC,OAAwB;QAExB,OAAO,WAAW,CAAC,UAAU,CAC3B,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/dist/esm/sdk/users.d.ts
CHANGED
|
@@ -13,23 +13,23 @@ export declare class Users extends ClientSDK {
|
|
|
13
13
|
/**
|
|
14
14
|
* Login the user and also return an access token the API client can use for further authentication
|
|
15
15
|
*/
|
|
16
|
-
login(request: operations.UserLoginRequest, options?: RequestOptions): Promise<operations.UserLoginResponse>;
|
|
16
|
+
login(request: operations.UserLoginRequest, options?: RequestOptions): Promise<operations.UserLoginResponse | undefined>;
|
|
17
17
|
/**
|
|
18
18
|
* Signup the given user
|
|
19
19
|
*/
|
|
20
|
-
signup(request: operations.UserSignupRequest, options?: RequestOptions): Promise<operations.UserSignupResponse>;
|
|
20
|
+
signup(request: operations.UserSignupRequest, options?: RequestOptions): Promise<operations.UserSignupResponse | undefined>;
|
|
21
21
|
/**
|
|
22
22
|
* Get the currently authenticated user's profile
|
|
23
23
|
*/
|
|
24
|
-
me(options?: RequestOptions): Promise<operations.GetCurrentUserResponse>;
|
|
24
|
+
me(options?: RequestOptions): Promise<operations.GetCurrentUserResponse | undefined>;
|
|
25
25
|
/**
|
|
26
26
|
* Get a user's public profile by ID
|
|
27
27
|
*/
|
|
28
|
-
get(request: operations.GetUserByIdRequest, options?: RequestOptions): Promise<operations.GetUserByIdResponse>;
|
|
28
|
+
get(request: operations.GetUserByIdRequest, options?: RequestOptions): Promise<operations.GetUserByIdResponse | undefined>;
|
|
29
29
|
/**
|
|
30
30
|
* Update a user's profile (own profile only)
|
|
31
31
|
*/
|
|
32
|
-
update(request: operations.UpdateUserRequest, options?: RequestOptions): Promise<operations.UpdateUserResponse>;
|
|
32
|
+
update(request: operations.UpdateUserRequest, options?: RequestOptions): Promise<operations.UpdateUserResponse | undefined>;
|
|
33
33
|
/**
|
|
34
34
|
* Soft delete a user account (own account only)
|
|
35
35
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../src/sdk/users.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,qBAAa,KAAM,SAAQ,SAAS;IAClC,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACG,KAAK,CACT,OAAO,EAAE,UAAU,CAAC,gBAAgB,EACpC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../src/sdk/users.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,qBAAa,KAAM,SAAQ,SAAS;IAClC,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACG,KAAK,CACT,OAAO,EAAE,UAAU,CAAC,gBAAgB,EACpC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAQpD;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,UAAU,CAAC,iBAAiB,EACrC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAQrD;;OAEG;IACG,EAAE,CACN,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAOzD;;OAEG;IACG,GAAG,CACP,OAAO,EAAE,UAAU,CAAC,kBAAkB,EACtC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAQtD;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,UAAU,CAAC,iBAAiB,EACrC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAQrD;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,UAAU,CAAC,iBAAiB,EACrC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;CAOjB"}
|
package/jsr.json
CHANGED
package/package.json
CHANGED
|
@@ -29,4 +29,62 @@ describe('School Endpoints Unit Tests', () => {
|
|
|
29
29
|
});
|
|
30
30
|
})
|
|
31
31
|
});
|
|
32
|
+
|
|
33
|
+
// tests authored by Claude and verified manually
|
|
34
|
+
// get leaderboard
|
|
35
|
+
it('Getting leaderboard fails without auth token', () => {
|
|
36
|
+
cy.request({
|
|
37
|
+
url: "schools/leaderboard",
|
|
38
|
+
failOnStatusCode: false
|
|
39
|
+
}).then(response => {
|
|
40
|
+
expect(response.status).to.equal(400, "Getting leaderboard without auth token should have failed with HTTP 401; got different code instead!");
|
|
41
|
+
})
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('Getting leaderboard fails with invalid auth token', () => {
|
|
45
|
+
cy.request({
|
|
46
|
+
url: "schools/leaderboard",
|
|
47
|
+
failOnStatusCode: false,
|
|
48
|
+
headers: {
|
|
49
|
+
"Authorization": "Bearer invalidToken"
|
|
50
|
+
}
|
|
51
|
+
}).then(response => {
|
|
52
|
+
expect(response.status).to.equal(401, "Getting leaderboard with invalid auth token should have failed with HTTP 401; got different code instead!");
|
|
53
|
+
})
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
it('Getting leaderboard succeeds and returns schools ranked by points', () => {
|
|
57
|
+
cy.request({
|
|
58
|
+
url: "schools/leaderboard",
|
|
59
|
+
headers: {
|
|
60
|
+
// keep in mind this is the test user with no perms :)
|
|
61
|
+
"Authorization": "Bearer 9d2272fd048bfeedda522935244fc4450fb61a9da6f7b7cea529c6c11033e9efee6b140b6e4b372f0c81a07a6e040be5150f506922e8a5c47719f7be2c707252"
|
|
62
|
+
}
|
|
63
|
+
}).then(response => {
|
|
64
|
+
expect(response.status).to.equal(200, "Getting leaderboard should have succeeded; got non-success code instead!");
|
|
65
|
+
expect(response.body).to.be.an("array");
|
|
66
|
+
response.body.forEach(school => {
|
|
67
|
+
expect(school).to.have.keys(["schoolName", "schoolNameShorthand", "points"]);
|
|
68
|
+
expect(school.points).to.be.a("number");
|
|
69
|
+
});
|
|
70
|
+
// verify sorted descending by points
|
|
71
|
+
for (let i = 0; i < response.body.length - 1; i++) {
|
|
72
|
+
expect(response.body[i].points).to.be.at.least(response.body[i + 1].points, "Leaderboard should be sorted by points descending!");
|
|
73
|
+
}
|
|
74
|
+
})
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
it('Getting leaderboard respects the limit query parameter', () => {
|
|
78
|
+
cy.request({
|
|
79
|
+
url: "schools/leaderboard?limit=1",
|
|
80
|
+
headers: {
|
|
81
|
+
// keep in mind this isn't a sensitive secret; just the test user with no perms :)
|
|
82
|
+
"Authorization": "Bearer 9d2272fd048bfeedda522935244fc4450fb61a9da6f7b7cea529c6c11033e9efee6b140b6e4b372f0c81a07a6e040be5150f506922e8a5c47719f7be2c707252"
|
|
83
|
+
}
|
|
84
|
+
}).then(response => {
|
|
85
|
+
expect(response.status).to.equal(200, "Getting leaderboard with limit should have succeeded; got non-success code instead!");
|
|
86
|
+
expect(response.body).to.be.an("array");
|
|
87
|
+
expect(response.body.length).to.equal(1, "Leaderboard should have returned exactly 1 school when limit=1!");
|
|
88
|
+
})
|
|
89
|
+
});
|
|
32
90
|
});
|
|
@@ -44,7 +44,7 @@ describe('User Endpoints Unit Tests', () => {
|
|
|
44
44
|
})
|
|
45
45
|
|
|
46
46
|
it('Login succeeds', () => {
|
|
47
|
-
cy.request("POST", "login", { username: "UnitTester", password: "
|
|
47
|
+
cy.request("POST", "login", { username: "UnitTester", password: "Antonios12!" }).then(response => {
|
|
48
48
|
expect(response.status).to.equal(200, "Login should have succeeded; failed on login status return code check!");
|
|
49
49
|
expect(response.body).to.haveOwnProperty(
|
|
50
50
|
"accessToken",
|
|
@@ -52,7 +52,6 @@ export default defineConfig({
|
|
|
52
52
|
return await prisma.$transaction([
|
|
53
53
|
prisma.likes.deleteMany({}),
|
|
54
54
|
prisma.$executeRaw`REPLACE INTO User_Activity_Posts (post_id, user_id, category_name, activity_id, post_date, post_status, caption) VALUES (1, 2, 'Professional', 1, '2026-02-28 22:15:02', 'public', 'This is a test post! Nothing much going on here...');`,
|
|
55
|
-
prisma.$executeRaw`REPLACE INTO User_Activity_Posts (post_id, user_id, category_name, activity_id, post_date, post_status, caption) VALUES (2, 3, 'Professional', 1, '2026-02-28 22:15:02', 'public', 'This is a test post! Nothing much going on here...');`
|
|
56
55
|
])
|
|
57
56
|
},
|
|
58
57
|
|
package/rest-api/index.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import Fastify from
|
|
2
|
-
import oasFastify from
|
|
3
|
-
import { prisma } from
|
|
4
|
-
import { load as yamlLoad } from
|
|
5
|
-
import { readFileSync } from
|
|
1
|
+
import Fastify from "fastify";
|
|
2
|
+
import oasFastify from "@aurora-interactive/oas-fastify";
|
|
3
|
+
import { prisma } from "./lib/prisma.js";
|
|
4
|
+
import { load as yamlLoad } from "js-yaml";
|
|
5
|
+
import { readFileSync } from "node:fs";
|
|
6
|
+
import { createServer } from "node:http";
|
|
7
|
+
import { Server } from "socket.io";
|
|
8
|
+
import express from "express";
|
|
6
9
|
|
|
7
10
|
import * as UserFuctions from "./routes/UserFunctions.js";
|
|
8
11
|
import * as SchoolFunctions from "./routes/SchoolFunctions.js";
|
|
@@ -14,7 +17,11 @@ import * as FriendFunctions from "./routes/FriendFunctions.js";
|
|
|
14
17
|
const spec = yamlLoad(readFileSync("./api-spec.yaml"));
|
|
15
18
|
|
|
16
19
|
// workaround for fastify spec -> route registrar
|
|
17
|
-
spec.$id =
|
|
20
|
+
spec.$id = "$";
|
|
21
|
+
|
|
22
|
+
const app = express();
|
|
23
|
+
const server = createServer(app);
|
|
24
|
+
const io = new Server(server);
|
|
18
25
|
|
|
19
26
|
const fastify = Fastify({
|
|
20
27
|
logger: false
|
|
@@ -29,6 +36,7 @@ const handler = {
|
|
|
29
36
|
deleteUser: UserFuctions.deleteUserHandler,
|
|
30
37
|
listSchools: SchoolFunctions.listSchoolsHandler,
|
|
31
38
|
getSchoolById: SchoolFunctions.getSchoolByIdHandler,
|
|
39
|
+
getTopSchools: SchoolFunctions.getTopSchoolsHandler,
|
|
32
40
|
listCategories: CategoryFunctions.listCategoriesHandler,
|
|
33
41
|
createCategory: CategoryFunctions.createCategoryHandler,
|
|
34
42
|
updateCategory: CategoryFunctions.updateCategoryHandler,
|
|
@@ -58,6 +66,26 @@ fastify.register(oasFastify, { spec, handler });
|
|
|
58
66
|
|
|
59
67
|
fastify.prisma = prisma;
|
|
60
68
|
|
|
69
|
+
io.on('connection', (socket) => {
|
|
70
|
+
socket.send("Hey! You are now receiving real-time messaging events for Sensei Productivity. Glad to have you in :P");
|
|
71
|
+
|
|
72
|
+
socket.on("loginAs", username => {
|
|
73
|
+
if (typeof username !== "string") {
|
|
74
|
+
socket.send("The username which was provided is not a string");
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
socket.join(username);
|
|
79
|
+
socket.send(`Successfully logged in as ${username}`);
|
|
80
|
+
})
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
server.listen(7654, "0.0.0.0", () => {
|
|
84
|
+
console.log('Websocket messaging running at http://0.0.0.0:7654');
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
fastify.socketio = io;
|
|
88
|
+
|
|
61
89
|
try {
|
|
62
90
|
await fastify.listen({ host: "0.0.0.0", port: 3000 })
|
|
63
91
|
} catch (err) {
|
package/rest-api/lib/users.js
CHANGED
|
@@ -32,4 +32,41 @@ export async function areUsersFriends(prisma, userId, targetPotentialFriendId) {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
return true;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export async function friendsOfUserById(prisma, userId) {
|
|
38
|
+
return await prisma.Friend_Requests.findMany({
|
|
39
|
+
where: {
|
|
40
|
+
OR: [
|
|
41
|
+
{ initiator_user_id: userId, status: "accepted" },
|
|
42
|
+
{ target_user_id: userId, status: "accepted" }
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
select: {
|
|
46
|
+
users_Friend_Requests_initiator_user_idTousers: {
|
|
47
|
+
select: {
|
|
48
|
+
user_id: true,
|
|
49
|
+
first_name: true,
|
|
50
|
+
last_name: true,
|
|
51
|
+
username: true,
|
|
52
|
+
email: true,
|
|
53
|
+
school: {
|
|
54
|
+
select: { school_id: true, school_name: true }
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
users_Friend_Requests_target_user_idTousers: {
|
|
59
|
+
select: {
|
|
60
|
+
user_id: true,
|
|
61
|
+
first_name: true,
|
|
62
|
+
last_name: true,
|
|
63
|
+
username: true,
|
|
64
|
+
email: true,
|
|
65
|
+
school: {
|
|
66
|
+
select: { school_id: true, school_name: true }
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});
|
|
35
72
|
}
|
|
@@ -10,6 +10,18 @@ async function getLikesForPost(postId, prisma) {
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
async function userHasAlreadyLikedPost(postId, userId, prisma) {
|
|
14
|
+
return (await prisma.Likes.findFirst({
|
|
15
|
+
where: {
|
|
16
|
+
post_id: postId,
|
|
17
|
+
user_id: userId
|
|
18
|
+
},
|
|
19
|
+
select: {
|
|
20
|
+
like_id: true
|
|
21
|
+
}
|
|
22
|
+
})) !== null;
|
|
23
|
+
}
|
|
24
|
+
|
|
13
25
|
export async function getUserPostsHandler(request, reply, fastify) {
|
|
14
26
|
const accessToken = (request.headers.authorization ?? "").substring(7)
|
|
15
27
|
const userInfo = await getUserAuthInfo(fastify.prisma, accessToken);
|
|
@@ -27,6 +39,7 @@ export async function getUserPostsHandler(request, reply, fastify) {
|
|
|
27
39
|
user_id: true
|
|
28
40
|
}
|
|
29
41
|
});
|
|
42
|
+
|
|
30
43
|
if (targetExistsCheck === null) {
|
|
31
44
|
reply.status(404);
|
|
32
45
|
return;
|
|
@@ -61,7 +74,8 @@ export async function getUserPostsHandler(request, reply, fastify) {
|
|
|
61
74
|
postDate: post.post_date,
|
|
62
75
|
postStatus: post.post_status,
|
|
63
76
|
caption: post.caption,
|
|
64
|
-
likes: await getLikesForPost(post.post_id, fastify.prisma)
|
|
77
|
+
likes: await getLikesForPost(post.post_id, fastify.prisma),
|
|
78
|
+
likedByCurrentUser: userHasAlreadyLikedPost(post.post_id, userInfo.user_id, fastify.prisma)
|
|
65
79
|
})));
|
|
66
80
|
}
|
|
67
81
|
|
|
@@ -146,7 +160,8 @@ export async function getFeedHandler(request, reply, fastify) {
|
|
|
146
160
|
userId: post.users.user_id,
|
|
147
161
|
categoryName: post.Category.category_name,
|
|
148
162
|
activityId: post.User_Activity.activity_id,
|
|
149
|
-
likes: await getLikesForPost(post.post_id, fastify.prisma)
|
|
163
|
+
likes: await getLikesForPost(post.post_id, fastify.prisma),
|
|
164
|
+
likedByCurrentUser: await userHasAlreadyLikedPost(post.post_id, userInfo.user_id, fastify.prisma)
|
|
150
165
|
})));
|
|
151
166
|
}
|
|
152
167
|
|
|
@@ -194,7 +209,8 @@ export async function getPostByIdHandler(request, reply, fastify) {
|
|
|
194
209
|
postDate: post.post_date,
|
|
195
210
|
postStatus: post.post_status,
|
|
196
211
|
caption: post.caption,
|
|
197
|
-
likes: await getLikesForPost(post.post_id, fastify.prisma)
|
|
212
|
+
likes: await getLikesForPost(post.post_id, fastify.prisma),
|
|
213
|
+
likedByCurrentUser: await userHasAlreadyLikedPost(post.post_id, userInfo.user_id, fastify.prisma)
|
|
198
214
|
};
|
|
199
215
|
}
|
|
200
216
|
|
|
@@ -314,15 +330,8 @@ export async function likePostHandler(request, reply, fastify) {
|
|
|
314
330
|
return;
|
|
315
331
|
}
|
|
316
332
|
|
|
317
|
-
const likeCheck = await fastify.prisma.Likes.findFirst({
|
|
318
|
-
where: {
|
|
319
|
-
post_id: request.params.id,
|
|
320
|
-
user_id: userInfo.user_id
|
|
321
|
-
}
|
|
322
|
-
});
|
|
323
|
-
|
|
324
333
|
// like only if user hasn't liked the post yet
|
|
325
|
-
if (
|
|
334
|
+
if (!(await userHasAlreadyLikedPost(request.params.id, userInfo.user_id, fastify.prisma))) {
|
|
326
335
|
await fastify.prisma.Likes.create({
|
|
327
336
|
data: {
|
|
328
337
|
post_id: request.params.id,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getUserAuthInfo, areUsersFriends } from "../lib/users.js";
|
|
1
|
+
import { getUserAuthInfo, areUsersFriends, friendsOfUserById } from "../lib/users.js";
|
|
2
2
|
|
|
3
3
|
export async function listFriendsHandler(request, reply, fastify) {
|
|
4
4
|
const accessToken = (request.headers.authorization ?? "").substring(7);
|
|
@@ -22,40 +22,7 @@ export async function listFriendsHandler(request, reply, fastify) {
|
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
const friendsList = await fastify.prisma.
|
|
26
|
-
where: {
|
|
27
|
-
OR: [
|
|
28
|
-
{ initiator_user_id: request.params.id, status: "accepted" },
|
|
29
|
-
{ target_user_id: request.params.id, status: "accepted" }
|
|
30
|
-
]
|
|
31
|
-
},
|
|
32
|
-
select: {
|
|
33
|
-
users_Friend_Requests_initiator_user_idTousers: {
|
|
34
|
-
select: {
|
|
35
|
-
user_id: true,
|
|
36
|
-
first_name: true,
|
|
37
|
-
last_name: true,
|
|
38
|
-
username: true,
|
|
39
|
-
email: true,
|
|
40
|
-
school: {
|
|
41
|
-
select: { school_id: true, school_name: true }
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
users_Friend_Requests_target_user_idTousers: {
|
|
46
|
-
select: {
|
|
47
|
-
user_id: true,
|
|
48
|
-
first_name: true,
|
|
49
|
-
last_name: true,
|
|
50
|
-
username: true,
|
|
51
|
-
email: true,
|
|
52
|
-
school: {
|
|
53
|
-
select: { school_id: true, school_name: true }
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
});
|
|
25
|
+
const friendsList = await friendsOfUserById(fastify.prisma, request.params.id);
|
|
59
26
|
|
|
60
27
|
return friendsList.map(friendEntry => {
|
|
61
28
|
// determine which side of the relationship is the friend (not the current user)
|
|
@@ -48,4 +48,54 @@ export async function getSchoolByIdHandler(request, reply, fastify) {
|
|
|
48
48
|
schoolNameShorthand: school.school_name_shorthand,
|
|
49
49
|
userCount: school._count.users
|
|
50
50
|
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// authored with help from Claude
|
|
54
|
+
export async function getTopSchoolsHandler(request, reply, fastify) {
|
|
55
|
+
if (typeof request.headers.authorization !== "string") {
|
|
56
|
+
reply.status(401);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const accessToken = request.headers.authorization.substring(7);
|
|
60
|
+
const user = await fastify.prisma.users.findFirst({
|
|
61
|
+
select: { user_id: true },
|
|
62
|
+
where: { access_token: accessToken }
|
|
63
|
+
});
|
|
64
|
+
if (user === null) {
|
|
65
|
+
reply.status(401);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const limit = request.query.limit ?? 10;
|
|
70
|
+
|
|
71
|
+
const schools = await fastify.prisma.school.findMany({
|
|
72
|
+
select: {
|
|
73
|
+
school_name: true,
|
|
74
|
+
school_name_shorthand: true,
|
|
75
|
+
users: {
|
|
76
|
+
select: {
|
|
77
|
+
User_Activity_Posts: {
|
|
78
|
+
select: {
|
|
79
|
+
Category: {
|
|
80
|
+
select: { category_weight: true }
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
take: limit
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
const ranked = schools.map(school => {
|
|
91
|
+
const points = school.users.flatMap(u => u.User_Activity_Posts)
|
|
92
|
+
.reduce((sum, post) => sum + post.Category.category_weight, 0);
|
|
93
|
+
return {
|
|
94
|
+
schoolName: school.school_name,
|
|
95
|
+
schoolNameShorthand: school.school_name_shorthand,
|
|
96
|
+
points
|
|
97
|
+
};
|
|
98
|
+
}).sort((a, b) => b.points - a.points);
|
|
99
|
+
|
|
100
|
+
return ranked;
|
|
51
101
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getUserAuthInfo, areUsersFriends } from "../lib/users.js";
|
|
1
|
+
import { getUserAuthInfo, areUsersFriends, friendsOfUserById } from "../lib/users.js";
|
|
2
2
|
|
|
3
3
|
export async function getUserActivitiesHandler(request, reply, fastify) {
|
|
4
4
|
const accessToken = (request.headers.authorization ?? "").substring(7);
|
|
@@ -205,6 +205,31 @@ export async function updateActivityHandler(request, reply, fastify) {
|
|
|
205
205
|
return;
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
+
if (currentActivity.activity_status === "active" && request.body.activityStatus === "completed") {
|
|
209
|
+
await fastify.prisma.User_Activity_Posts.create({
|
|
210
|
+
data: {
|
|
211
|
+
post_status: "public",
|
|
212
|
+
caption: currentActivity.details,
|
|
213
|
+
users: {
|
|
214
|
+
connect: { user_id: userInfo.user_id }
|
|
215
|
+
},
|
|
216
|
+
Category: {
|
|
217
|
+
connect: { category_name: currentActivity.category_name }
|
|
218
|
+
},
|
|
219
|
+
User_Activity: {
|
|
220
|
+
connect: { activity_id: request.params.id }
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
currentActivity.user_id = Number(currentActivity.user_id);
|
|
226
|
+
const friends = await friendsOfUserById(fastify.prisma, userInfo.user_id);
|
|
227
|
+
for (const friendObj of friends) {
|
|
228
|
+
const friend = (friendObj.users_Friend_Requests_initiator_user_idTousers.user_id === userInfo.user_id ? friendObj.users_Friend_Requests_target_user_idTousers : friendObj.users_Friend_Requests_initiator_user_idTousers).username;
|
|
229
|
+
fastify.socketio.to(friend).emit("userPost", currentActivity); // instantly propagate the post to all the user's friend for the post feed
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
208
233
|
const targetActivityStatus = request.body.activityStatus ?? currentActivity.activity_status;
|
|
209
234
|
const targetActivityDeadline = request.body.activityDeadline ?? currentActivity.activity_deadline;
|
|
210
235
|
const targetDetails = request.body.details ?? currentActivity.details;
|