diff --git a/bookshop/app/vue/app.js b/bookshop/app/vue/app.js index c2b7ce11..c96797d5 100644 --- a/bookshop/app/vue/app.js +++ b/bookshop/app/vue/app.js @@ -44,9 +44,9 @@ const books = Vue.createApp ({ async fetchUserInfo() { try { - books.user = (await axios.get('/user/Me')).data - if (!books.user.ID) books.user.ID = 'anonymous' - } catch (err) { books.user = {}; books.user.ID = err.message } + const { data } = await axios.get('/user/me') + books.user = data + } catch (err) { books.user = { id: err.message } } } } }).mount("#app") diff --git a/bookshop/app/vue/index.html b/bookshop/app/vue/index.html index 20204a18..36aff1d7 100644 --- a/bookshop/app/vue/index.html +++ b/bookshop/app/vue/index.html @@ -19,7 +19,7 @@
-
User: {{ user.ID || 'anonymous' }}
+
User: {{ user.id || 'anonymous' }}
Locale: {{ user.locale }}
Tenant: {{ user.tenant }}
diff --git a/bookshop/srv/user-service.cds b/bookshop/srv/user-service.cds index 80320fa2..1897f60e 100644 --- a/bookshop/srv/user-service.cds +++ b/bookshop/srv/user-service.cds @@ -1,15 +1,14 @@ /** * Exposes user information */ -@requires : 'authenticated-user' +@requires: 'authenticated-user' service UserService { /** * The current user */ - @odata.singleton - entity Me { - ID : String; + @odata.singleton entity me { + id : String; // user id locale : String; tenant : String; } diff --git a/bookshop/srv/user-service.js b/bookshop/srv/user-service.js index 33502cc6..61f95fd8 100644 --- a/bookshop/srv/user-service.js +++ b/bookshop/srv/user-service.js @@ -1,11 +1,4 @@ -const cds = require('@sap/cds'); - +const cds = require('@sap/cds') module.exports = cds.service.impl((srv) => { - srv.on('READ', 'Me', ({ user }) => { - return { - ID: user.id, - locale: user.locale, - tenant: user.tenant, - }; - }); -}); + srv.on('READ', 'me', ({ tenant, user, locale }) => ({ id: user.id, locale, tenant })) +}) diff --git a/test/odata.test.js b/test/odata.test.js index 08dcd87c..06eeeb66 100644 --- a/test/odata.test.js +++ b/test/odata.test.js @@ -80,12 +80,12 @@ describe('Misc', () => { it('serves user info', async () => { { - const { data } = await GET (`/user/Me`) - expect(data).to.containSubset({ ID: 'alice', locale:'en', tenant: null }) + const { data } = await GET (`/user/me`) + expect(data).to.containSubset({ id: 'alice', locale:'en', tenant: null }) } { - const { data } = await GET (`/user/Me`, {auth: { username: 'joe' }}) - expect(data).to.containSubset({ ID: 'joe', locale:'en', tenant: null }) + const { data } = await GET (`/user/me`, {auth: { username: 'joe' }}) + expect(data).to.containSubset({ id: 'joe', locale:'en', tenant: null }) } })