From a66ed941f5e220f83145bdbf6eae318158f170f9 Mon Sep 17 00:00:00 2001 From: Marcos Defendi Date: Wed, 14 Mar 2018 18:09:49 -0300 Subject: [PATCH 1/5] Added endpoint to get the list of available oauth services --- packages/rocketchat-api/server/v1/misc.js | 20 +++++++++++++++++ tests/end-to-end/api/00-miscellaneous.js | 26 +++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/packages/rocketchat-api/server/v1/misc.js b/packages/rocketchat-api/server/v1/misc.js index c1bf99ef3e997..833b6058cb0fe 100644 --- a/packages/rocketchat-api/server/v1/misc.js +++ b/packages/rocketchat-api/server/v1/misc.js @@ -18,6 +18,26 @@ RocketChat.API.v1.addRoute('info', { authRequired: false }, { } }); +RocketChat.API.v1.addRoute('oAuthServices', { authRequired: false }, { + get() { + const mountOAuthServices = () => { + const oAuthServicesEnabled = ServiceConfiguration.configurations.find({}).fetch(); + + return oAuthServicesEnabled.map((service) => { + return { + id: service._id, + name: service.service, + appId: service.appId || service.clientId + } + }) + }; + + return RocketChat.API.v1.success({ + services: mountOAuthServices() + }); + } +}); + RocketChat.API.v1.addRoute('me', { authRequired: true }, { get() { const me = _.pick(this.user, [ diff --git a/tests/end-to-end/api/00-miscellaneous.js b/tests/end-to-end/api/00-miscellaneous.js index 76ac7fa787aaf..895c6a7131fad 100644 --- a/tests/end-to-end/api/00-miscellaneous.js +++ b/tests/end-to-end/api/00-miscellaneous.js @@ -70,4 +70,30 @@ describe('miscellaneous', function() { }) .end(done); }); + + describe('/oAuthServices', () => { + it('should have return list of available oauth services when user is not logged', (done) => { + request.get(api('oAuthServices')) + .expect('Content-Type', 'application/json') + .expect(200) + .expect((res) => { + expect(res.body).to.have.property('success', true); + expect(res.body).to.have.property('services').and.to.be.an('array'); + }) + .end(done); + }); + + it('should have return list of available oauth services when user is logged', (done) => { + request.get(api('oAuthServices')) + .set(credentials) + .expect('Content-Type', 'application/json') + .expect(200) + .expect((res) => { + expect(res.body).to.have.property('success', true); + expect(res.body).to.have.property('services').and.to.be.an('array'); + }) + .end(done); + }); + }); + }); From 8b4b6d569fb01dc97d33f8d54d9447db471e1127 Mon Sep 17 00:00:00 2001 From: Marcos Defendi Date: Wed, 14 Mar 2018 18:17:47 -0300 Subject: [PATCH 2/5] rename endpoind to settings.oauth and fix lint problems --- packages/rocketchat-api/server/v1/misc.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/rocketchat-api/server/v1/misc.js b/packages/rocketchat-api/server/v1/misc.js index 833b6058cb0fe..8aae0ca4d541f 100644 --- a/packages/rocketchat-api/server/v1/misc.js +++ b/packages/rocketchat-api/server/v1/misc.js @@ -18,7 +18,7 @@ RocketChat.API.v1.addRoute('info', { authRequired: false }, { } }); -RocketChat.API.v1.addRoute('oAuthServices', { authRequired: false }, { +RocketChat.API.v1.addRoute('settings.oauth', { authRequired: false }, { get() { const mountOAuthServices = () => { const oAuthServicesEnabled = ServiceConfiguration.configurations.find({}).fetch(); @@ -28,8 +28,8 @@ RocketChat.API.v1.addRoute('oAuthServices', { authRequired: false }, { id: service._id, name: service.service, appId: service.appId || service.clientId - } - }) + }; + }); }; return RocketChat.API.v1.success({ From 51f3a22e758a59b7c9b19750fadfdad9526b6072 Mon Sep 17 00:00:00 2001 From: Marcos Defendi Date: Wed, 14 Mar 2018 18:20:54 -0300 Subject: [PATCH 3/5] Change tests, rename endpoint --- tests/end-to-end/api/00-miscellaneous.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/end-to-end/api/00-miscellaneous.js b/tests/end-to-end/api/00-miscellaneous.js index 895c6a7131fad..20d68fac21009 100644 --- a/tests/end-to-end/api/00-miscellaneous.js +++ b/tests/end-to-end/api/00-miscellaneous.js @@ -71,9 +71,9 @@ describe('miscellaneous', function() { .end(done); }); - describe('/oAuthServices', () => { + describe('/settings.oauth', () => { it('should have return list of available oauth services when user is not logged', (done) => { - request.get(api('oAuthServices')) + request.get(api('settings.oauth')) .expect('Content-Type', 'application/json') .expect(200) .expect((res) => { @@ -84,7 +84,7 @@ describe('miscellaneous', function() { }); it('should have return list of available oauth services when user is logged', (done) => { - request.get(api('oAuthServices')) + request.get(api('settings.oauth')) .set(credentials) .expect('Content-Type', 'application/json') .expect(200) From dddf85d8b27065e0f995fe5feffc05ea5c2b7263 Mon Sep 17 00:00:00 2001 From: Marcos Defendi Date: Thu, 15 Mar 2018 16:01:48 -0300 Subject: [PATCH 4/5] Added buttons Properties to response in settings.oauth endpoint --- packages/rocketchat-api/server/v1/misc.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/rocketchat-api/server/v1/misc.js b/packages/rocketchat-api/server/v1/misc.js index 8aae0ca4d541f..dde0d4a54a605 100644 --- a/packages/rocketchat-api/server/v1/misc.js +++ b/packages/rocketchat-api/server/v1/misc.js @@ -27,8 +27,11 @@ RocketChat.API.v1.addRoute('settings.oauth', { authRequired: false }, { return { id: service._id, name: service.service, - appId: service.appId || service.clientId - }; + appId: service.appId || service.clientId, + buttonLabelText: service.buttonLabelText || '', + buttonColor: service.buttonColor || '', + buttonLabelColor: service.buttonLabelColor || '', + }; }); }; From 51ee38ae6dbdebe81b4ed2c105f8b1c10e391a31 Mon Sep 17 00:00:00 2001 From: Marcos Defendi Date: Thu, 15 Mar 2018 16:07:31 -0300 Subject: [PATCH 5/5] fix lint problem --- packages/rocketchat-api/server/v1/misc.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/rocketchat-api/server/v1/misc.js b/packages/rocketchat-api/server/v1/misc.js index dde0d4a54a605..4fad6919a4304 100644 --- a/packages/rocketchat-api/server/v1/misc.js +++ b/packages/rocketchat-api/server/v1/misc.js @@ -30,8 +30,8 @@ RocketChat.API.v1.addRoute('settings.oauth', { authRequired: false }, { appId: service.appId || service.clientId, buttonLabelText: service.buttonLabelText || '', buttonColor: service.buttonColor || '', - buttonLabelColor: service.buttonLabelColor || '', - }; + buttonLabelColor: service.buttonLabelColor || '' + }; }); };