@rpcbase/server 0.299.0 → 0.300.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/express/index.js
CHANGED
|
@@ -7,6 +7,7 @@ const Sentry = require("@sentry/node")
|
|
|
7
7
|
|
|
8
8
|
// functionality middlewares
|
|
9
9
|
const auth = require("../src/auth")
|
|
10
|
+
const api = require("../src/api")
|
|
10
11
|
const sessions = require("../src/sessions")
|
|
11
12
|
|
|
12
13
|
const dev_save_coverage = require("./dev_save_coverage")
|
|
@@ -78,6 +79,7 @@ module.exports = () => {
|
|
|
78
79
|
app.post("/__ping", (req, res) => res.json({message: "pong"}))
|
|
79
80
|
|
|
80
81
|
auth(app)
|
|
82
|
+
api(app)
|
|
81
83
|
|
|
82
84
|
dev_save_coverage(app)
|
|
83
85
|
|
package/package.json
CHANGED
package/src/api/index.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/* @flow */
|
|
2
|
+
const assert = require("assert")
|
|
3
|
+
|
|
4
|
+
const UserStoredValues = require("../../models/UserStoredValues")
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
const get_projection = (payload) => {
|
|
8
|
+
const projection = {}
|
|
9
|
+
|
|
10
|
+
payload.forEach((key) => {
|
|
11
|
+
projection[key] = 1
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
return projection
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
const get_stored_values = async(payload, ctx) => {
|
|
19
|
+
const {user_id} = ctx.req.session
|
|
20
|
+
expect(user_id).toBeMongoId()
|
|
21
|
+
|
|
22
|
+
const projection = get_projection(payload)
|
|
23
|
+
|
|
24
|
+
const storage_doc = await UserStoredValues.findOne({_owners: {$in: [user_id]}}, projection, {ctx})
|
|
25
|
+
assert(storage_doc, `unable to retrieve storage_doc for user: ${user_id}`)
|
|
26
|
+
|
|
27
|
+
const result = {
|
|
28
|
+
values: payload.map((k) => storage_doc.get(k)),
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return {
|
|
32
|
+
status: "ok",
|
|
33
|
+
...result,
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
module.exports = get_stored_values
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/* @flow */
|
|
2
|
+
const handler_wrapper = require("../helpers/handler_wrapper")
|
|
3
|
+
|
|
4
|
+
const get_stored_values = require("./get_stored_values")
|
|
5
|
+
const set_stored_values = require("./set_stored_values")
|
|
6
|
+
|
|
7
|
+
module.exports = (app) => {
|
|
8
|
+
app.post("/api/v1/stored-values/get", handler_wrapper(get_stored_values))
|
|
9
|
+
app.post("/api/v1/stored-values/set", handler_wrapper(set_stored_values))
|
|
10
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/* @flow */
|
|
2
|
+
const assert = require("assert")
|
|
3
|
+
|
|
4
|
+
const UseStoredValues = require("../../models/UseStoredValues")
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
const set_stored_values = async(payload, ctx) => {
|
|
8
|
+
const {values} = payload
|
|
9
|
+
|
|
10
|
+
const {user_id} = ctx.req.session
|
|
11
|
+
expect(user_id).toBeMongoId()
|
|
12
|
+
|
|
13
|
+
const updates = Object.create(null)
|
|
14
|
+
|
|
15
|
+
values.forEach(({key, value}) => {
|
|
16
|
+
updates[key] = value
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
const res = await UseStoredValues.updateOne(
|
|
20
|
+
{_owners: {$in: [user_id]}},
|
|
21
|
+
{$set: updates}
|
|
22
|
+
{ctx}
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
console.log("LA RES UPDATE", res)
|
|
26
|
+
// assert(res.updatedCount === 1, `unable to update user stored values`)
|
|
27
|
+
|
|
28
|
+
return {status: "ok"}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = set_stored_values
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/* @flow */
|
|
2
|
+
const mongoose = require("../../mongoose")
|
|
3
|
+
|
|
4
|
+
const UserStoredValuesSchema = new mongoose.Schema({
|
|
5
|
+
_owners: {
|
|
6
|
+
type: Array,
|
|
7
|
+
required: true,
|
|
8
|
+
index: true,
|
|
9
|
+
default: undefined,
|
|
10
|
+
},
|
|
11
|
+
}, {
|
|
12
|
+
strict: false,
|
|
13
|
+
versionKey: false,
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
const model = mongoose.model("UserStoredValues", UserStoredValuesSchema, "userstoredvalues")
|
|
17
|
+
|
|
18
|
+
module.exports = model
|