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 })
}
})