-
Notifications
You must be signed in to change notification settings - Fork 62
GPII-2966 APIs provided by Preferences Server to support PPT #634
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 7 commits
c7ad172
1252d6b
9cb199d
897e41c
61d906f
abae292
49adad7
56da240
1ac7a4f
dd187de
39160ce
6a8e564
ecd08b8
d3c5caf
b1c3693
fbe91e4
db02d36
0f07b8a
a55a043
1808d3b
e30021d
0cb4998
34eccda
65e1732
4cf8eed
9dcab0c
af796ee
5810582
176b3bc
0fe1208
ff232fb
da79bce
2f8b396
203a62f
c5846cd
c21c2e1
9fa93fd
ff1a8bd
33b28aa
604b2a1
74015c5
753b52f
e0935e7
fed8067
eac3195
4a5aaae
ca60fb5
a1167a5
e6baad4
b8c7645
7d3a1e9
ead61ff
e3073c0
e52e426
66ac6c2
8f3026d
17d832e
a1bf6aa
fcfcdb2
82491ed
f180848
34a1535
00a2a26
7d1becf
1dbdb28
82c1137
52f15b4
0c56fe9
c614c31
f2a2d15
c98ea65
2ff8f59
d3f56f8
bdac5f5
2be8db1
db44149
7db4a96
8b2b97b
f1c9207
d0904d4
c9a9bbe
b3eccba
e4956ff
f4a1e68
1ee531f
2f365c4
ddd6cda
2045391
5400a69
7e7fdf9
bf6e5b3
331cfac
18ff970
ad6d7a6
2a6dbd5
9343166
04d6abe
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -40,6 +40,32 @@ fluid.defaults("gpii.preferencesServer", { | |
| route: "/preferences/:gpiiKey", | ||
| method: "put", | ||
| type: "gpii.preferencesServer.put.handler" | ||
| }, | ||
| // GPII-2966 | ||
| prefsSafeGet: { | ||
sgithens marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| route: "/prefssafe/:prefsSafeId", | ||
|
||
| method: "get", | ||
| type: "gpii.preferencesServer.prefsSafeGet.handler" | ||
| }, | ||
| prefsSafeWithKeysGet: { | ||
| route: "/prefssafe-with-keys/:prefsSafeId", | ||
| method: "get", | ||
| type: "gpii.preferencesServer.prefsSafeWithKeysGet.handler" | ||
| }, | ||
| prefsSafeSave: { | ||
| route: "/prefssafe/:prefsSafeId", | ||
| method: "put", | ||
| type: "gpii.preferencesServer.prefsSafePut.handler" | ||
| }, | ||
| listPrefsSafes: { | ||
| route: "/prefssafes", | ||
| method: "get", | ||
| type: "gpii.preferencesServer.prefsSafeList.handler" | ||
| }, | ||
| listKeysForPrefsSafe: { | ||
| route: "/prefssafe-keys/:prefsSafeId", | ||
| method: "get", | ||
| type: "gpii.preferencesServer.listKeysForPrefsSafe.handler" | ||
| } | ||
| }, | ||
| invokers: { | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,129 @@ | ||
| /*! | ||
| GPII Preferences Server GET Handler | ||
| Copyright 2014 Raising the Floor - International | ||
| Copyright 2018 OCAD University | ||
| Licensed under the New BSD license. You may not use this file except in | ||
| compliance with this License. | ||
| The research leading to these results has received funding from the European Union's | ||
| Seventh Framework Programme (FP7/2007-2013) under grant agreement no. 289016. | ||
| You may obtain a copy of the License at | ||
| https://github.com/GPII/universal/blob/master/LICENSE.txt | ||
| */ | ||
|
|
||
| "use strict"; | ||
|
|
||
| var fluid = require("infusion"), | ||
| gpii = fluid.registerNamespace("gpii"); | ||
|
|
||
| fluid.defaults("gpii.preferencesServer.prefsSafeGet.handler", { | ||
| gradeNames: ["kettle.request.http"], | ||
| invokers: { | ||
| handleRequest: { | ||
| funcName: "gpii.preferencesServer.prefsSafeGet.handler.getPrefsSafe", | ||
| args: ["{gpii.preferencesServer.preferencesService}", "{preferencesServer}", "{that}", "{that}.req.params.prefsSafeId", "{that}.req.query.view"] | ||
| } | ||
| } | ||
| }); | ||
|
|
||
| gpii.preferencesServer.prefsSafeGet.handler.getPrefsSafe = function (prefsService, preferencesServer, request, gpiiKey, view) { | ||
| var prefsPromise = prefsService.dataStore.findById(gpiiKey); | ||
| prefsPromise.then(request.events.onSuccess.fire, request.events.onError.fire); | ||
| }; | ||
|
|
||
| fluid.defaults("gpii.preferencesServer.prefsSafeList.handler", { | ||
| gradeNames: ["kettle.request.http"], | ||
| invokers: { | ||
| handleRequest: { | ||
| funcName: "gpii.preferencesServer.prefsSafeList.handler.getPrefsSafeList", | ||
| args: ["{gpii.preferencesServer.preferencesService}", "{preferencesServer}", "{that}", "{that}.req.query.view"] | ||
| } | ||
| } | ||
| }); | ||
|
|
||
| gpii.preferencesServer.prefsSafeList.handler.getPrefsSafeList = function (prefsService, preferencesServer, request, view) { | ||
| var finalDirectModel = fluid.extend(true, {}, prefsService.dataStore.listPrefsSafesDataSource.options.directModel, {}); | ||
| var prefsPromise = prefsService.dataStore.listPrefsSafesDataSource.get(finalDirectModel); | ||
| prefsPromise.then(function (data) { | ||
| var togo = []; | ||
| // TODO this should probably be done in a couchview for efficiency and eventual paging? | ||
| fluid.each(data, function(item) { | ||
| item.value.prefsSafeId = item.key; | ||
| togo.push(item.value); | ||
| }); | ||
| request.events.onSuccess.fire(togo); | ||
| }, request.events.onError.fire); | ||
| }; | ||
|
|
||
| fluid.defaults("gpii.preferencesServer.listKeysForPrefsSafe.handler", { | ||
| gradeNames: ["kettle.request.http"], | ||
| invokers: { | ||
| handleRequest: { | ||
| funcName: "gpii.preferencesServer.listKeysForPrefsSafe.handler.getKeysForPrefsSafe", | ||
| args: ["{gpii.preferencesServer.preferencesService}", "{preferencesServer}", "{that}", "{that}.req.params.prefsSafeId", "{that}.req.query.view"] | ||
| } | ||
| } | ||
| }); | ||
|
|
||
| gpii.preferencesServer.listKeysForPrefsSafe.handler.getKeysForPrefsSafe = function (prefsService, preferencesServer, request, prefsSafeId, view) { | ||
| var finalDirectModel = fluid.extend(true, {}, prefsService.dataStore.listKeysForPrefsSafeDataSource.options.directModel, { | ||
|
||
| prefsSafeId: prefsSafeId}); | ||
| var prefsPromise = prefsService.dataStore.listKeysForPrefsSafeDataSource.get(finalDirectModel); | ||
| prefsPromise.then(function (data) { | ||
| var togo = []; | ||
|
||
| fluid.each(data, function (i) { | ||
| var next = i.doc; | ||
| gpii.dbOperation.dbDataStore.cleanUpDoc(next); | ||
| togo.push(next); | ||
| }); | ||
| request.events.onSuccess.fire(togo); | ||
| }, request.events.onError.fire); | ||
| }; | ||
|
|
||
| fluid.defaults("gpii.preferencesServer.prefsSafeWithKeysGet.handler", { | ||
| gradeNames: ["kettle.request.http"], | ||
| invokers: { | ||
| handleRequest: { | ||
| funcName: "gpii.preferencesServer.prefsSafeWithKeysGet.handler.get", | ||
| args: ["{gpii.preferencesServer.preferencesService}", "{preferencesServer}", "{that}", "{that}.req.params.prefsSafeId", "{that}.req.query.view"] | ||
| } | ||
| } | ||
| }); | ||
|
|
||
| gpii.preferencesServer.prefsSafeWithKeysGet.handler.get = function (prefsService, preferencesServer, request, prefsSafeId, view) { | ||
|
||
| // TODO Refactor from above, copied/pasted | ||
| var finalDirectModel = fluid.extend(true, {}, prefsService.dataStore.listKeysForPrefsSafeDataSource.options.directModel, { | ||
|
||
| prefsSafeId: prefsSafeId}); | ||
| var prefsPromise = prefsService.dataStore.listKeysForPrefsSafeDataSource.get(finalDirectModel); | ||
|
||
| prefsPromise.then(function (data) { | ||
| var togo = []; | ||
| fluid.each(data, function (i) { | ||
| var next = i.doc; | ||
| gpii.dbOperation.dbDataStore.cleanUpDoc(next); | ||
| togo.push(next); | ||
| }); | ||
| var prefsSafePromise = prefsService.dataStore.findById(prefsSafeId); | ||
| prefsSafePromise.then(function (prefsSafeData) { | ||
| prefsSafeData.keys = togo; | ||
| request.events.onSuccess.fire(prefsSafeData); | ||
| }, request.events.onError.fire); | ||
| }, request.events.onError.fire); | ||
| }; | ||
|
|
||
| fluid.defaults("gpii.preferencesServer.prefsSafePut.handler", { | ||
| gradeNames: ["kettle.request.http"], | ||
| invokers: { | ||
| handleRequest: { | ||
| funcName: "gpii.preferencesServer.prefsSafePut.handler.savePrefsSafe", | ||
| args: ["{preferencesServer}", "{that}", "{that}.req.params.prefsSafeId", "{that}.req.body", "{that}.req.query.view",] | ||
| } | ||
| } | ||
| }); | ||
|
|
||
| gpii.preferencesServer.prefsSafePut.handler.savePrefsSafe = function (preferencesServer, request, prefsSafeId, prefsSafe, view) { | ||
| var updatePrefsSafePromise = preferencesServer.dataStore.updatePrefsSafe(prefsSafeId, prefsSafeData); | ||
| updatePrefsSafePromise.then(request.events.onSuccess.fire, request.events.onError.fire); | ||
| }; | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -10,6 +10,15 @@ | |
| }, | ||
| "findAuthorizationByAccessToken": { | ||
| "map": "function(doc) {if (doc.type === 'gpiiAppInstallationAuthorization' && doc.revoked === false) {emit(doc.accessToken, {'_id': doc.clientId, 'authorization': doc})}}" | ||
| }, | ||
| "listKeysForPrefsSafe": { | ||
|
||
| "map": "function(doc) {if (doc.type === 'gpiiKey') emit(doc.prefsSafeId, null) }" | ||
| }, | ||
| "listPrefsSafes": { | ||
| "map": "function(doc) { if (doc.type === 'prefsSafe') emit(doc._id, { 'name': doc.name, 'email': doc.email, 'created': doc.timestampCreated, 'updated': doc.timestampUpdated })}" | ||
|
||
| }, | ||
| "findPrefsSafeByName": { | ||
sgithens marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| "map": "function(doc) {if (doc.type === 'prefsSafe') emit(doc.name, null)}" | ||
| } | ||
| } | ||
| } | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.