Merge branch 'main' into fiori-ext
This commit is contained in:
@@ -5,7 +5,7 @@ service UserService {
|
||||
/**
|
||||
* The current user
|
||||
*/
|
||||
@odata.singleton entity me {
|
||||
@odata.singleton entity me @cds.persistence.skip {
|
||||
id : String; // user id
|
||||
locale : String;
|
||||
tenant : String;
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
* Exposes data + entity metadata
|
||||
*/
|
||||
@requires:'authenticated-user'
|
||||
service DataService @( path:'-data' ) {
|
||||
@odata service DataService @( path:'-data' ) {
|
||||
|
||||
/**
|
||||
* Metadata like name and columns/elements
|
||||
*/
|
||||
entity Entities {
|
||||
entity Entities @cds.persistence.skip {
|
||||
key name : String;
|
||||
columns: Composition of many {
|
||||
name : String;
|
||||
@@ -19,7 +19,7 @@ service DataService @( path:'-data' ) {
|
||||
/**
|
||||
* The actual data, organized by column name
|
||||
*/
|
||||
entity Data {
|
||||
entity Data @cds.persistence.skip {
|
||||
record : array of {
|
||||
column : String;
|
||||
data : String;
|
||||
|
||||
33
package-lock.json
generated
33
package-lock.json
generated
@@ -24,6 +24,7 @@
|
||||
}
|
||||
},
|
||||
"bookshop": {
|
||||
"name": "@capire/bookshop",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"@sap/cds": ">=5.9",
|
||||
@@ -32,6 +33,7 @@
|
||||
}
|
||||
},
|
||||
"bookstore": {
|
||||
"name": "@capire/bookstore",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"@capire/bookshop": "*",
|
||||
@@ -44,18 +46,21 @@
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"name": "@capire/common",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"@sap/cds": "*"
|
||||
}
|
||||
},
|
||||
"data-viewer": {
|
||||
"name": "@capire/data-viewer",
|
||||
"version": "0.1.0",
|
||||
"dependencies": {
|
||||
"@sap/cds": ">=5.0.4"
|
||||
}
|
||||
},
|
||||
"fiori": {
|
||||
"name": "@capire/fiori",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"@capire/bookstore": "*",
|
||||
@@ -83,6 +88,7 @@
|
||||
}
|
||||
},
|
||||
"hello": {
|
||||
"name": "@capire/hello-world",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"@sap/cds": ">=5.0.4"
|
||||
@@ -94,6 +100,7 @@
|
||||
}
|
||||
},
|
||||
"media": {
|
||||
"name": "@capire/media",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"lokijs": "^1.5.6"
|
||||
@@ -448,9 +455,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sap/cds": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@sap/cds/-/cds-6.1.1.tgz",
|
||||
"integrity": "sha512-oOdwHpzPnpt10bJ94E8Umq8Y9uuA+1mpEH9zjQNB/jynNqSMuvM1/68ZAsndhL1pSgw49o8W6b83cKJNUVyzfw==",
|
||||
"version": "6.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@sap/cds/-/cds-6.1.3.tgz",
|
||||
"integrity": "sha512-yvL9lPonVwUx9Md1eylAtpY0JrlSMyoxZXnCA2q9lNoVNudmjPMynO5CJBfAYEaThZSqd2yMJg/+xyKy/mn3wg==",
|
||||
"dependencies": {
|
||||
"@sap/cds-compiler": "^3.0.0",
|
||||
"@sap/cds-foss": "^4"
|
||||
@@ -4038,9 +4045,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/sqlite3": {
|
||||
"version": "5.0.11",
|
||||
"resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.11.tgz",
|
||||
"integrity": "sha512-4akFOr7u9lJEeAWLJxmwiV43DJcGV7w3ab7SjQFAFaTVyknY3rZjvXTKIVtWqUoY4xwhjwoHKYs2HDW2SoHVsA==",
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.1.tgz",
|
||||
"integrity": "sha512-mMinkrQr/LKJqFiFF+AF7imPSzRCCpTCreusZO3D/ssJHVjZOrbu2Caz+zPH5KTmGGXBxXMGSRDssL+44CLxvg==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
@@ -4440,6 +4447,7 @@
|
||||
}
|
||||
},
|
||||
"orders": {
|
||||
"name": "@capire/orders",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"@capire/common": "*",
|
||||
@@ -4447,6 +4455,7 @@
|
||||
}
|
||||
},
|
||||
"reviews": {
|
||||
"name": "@capire/reviews",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"@sap/cds": ">=5",
|
||||
@@ -4780,9 +4789,9 @@
|
||||
}
|
||||
},
|
||||
"@sap/cds": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@sap/cds/-/cds-6.1.1.tgz",
|
||||
"integrity": "sha512-oOdwHpzPnpt10bJ94E8Umq8Y9uuA+1mpEH9zjQNB/jynNqSMuvM1/68ZAsndhL1pSgw49o8W6b83cKJNUVyzfw==",
|
||||
"version": "6.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@sap/cds/-/cds-6.1.3.tgz",
|
||||
"integrity": "sha512-yvL9lPonVwUx9Md1eylAtpY0JrlSMyoxZXnCA2q9lNoVNudmjPMynO5CJBfAYEaThZSqd2yMJg/+xyKy/mn3wg==",
|
||||
"requires": {
|
||||
"@sap/cds-compiler": "^3.0.0",
|
||||
"@sap/cds-foss": "^4"
|
||||
@@ -7615,9 +7624,9 @@
|
||||
}
|
||||
},
|
||||
"sqlite3": {
|
||||
"version": "5.0.11",
|
||||
"resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.11.tgz",
|
||||
"integrity": "sha512-4akFOr7u9lJEeAWLJxmwiV43DJcGV7w3ab7SjQFAFaTVyknY3rZjvXTKIVtWqUoY4xwhjwoHKYs2HDW2SoHVsA==",
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.1.tgz",
|
||||
"integrity": "sha512-mMinkrQr/LKJqFiFF+AF7imPSzRCCpTCreusZO3D/ssJHVjZOrbu2Caz+zPH5KTmGGXBxXMGSRDssL+44CLxvg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@mapbox/node-pre-gyp": "^1.0.0",
|
||||
|
||||
@@ -411,18 +411,67 @@ describe('cds.ql → cqn', () => {
|
||||
]
|
||||
}})
|
||||
|
||||
expect (
|
||||
SELECT.from(Foo).where({x:1,or:{y:2}})
|
||||
).to.eql (
|
||||
CQL`SELECT from Foo where x=1 or y=2`
|
||||
).to.eql ({ SELECT: {
|
||||
from: {ref:['Foo']},
|
||||
where: [
|
||||
{ref:['x']}, '=', {val:1},
|
||||
'or',
|
||||
{ref:['y']}, '=', {val:2}
|
||||
]
|
||||
}})
|
||||
const ql_with_groups_fix = !!cds.ql.Query.prototype.flat
|
||||
if (ql_with_groups_fix) {
|
||||
|
||||
expect (
|
||||
SELECT.from(Foo).where({x:1}).or({y:2}).and({z:3})
|
||||
).to.eql ({ SELECT: {
|
||||
from: {ref:['Foo']},
|
||||
where: [
|
||||
{ref:['x']}, '=', {val:1},
|
||||
'or',
|
||||
{ref:['y']}, '=', {val:2},
|
||||
'and',
|
||||
{ref:['z']}, '=', {val:3},
|
||||
]
|
||||
}})
|
||||
|
||||
expect (
|
||||
SELECT.from(Foo).where({x:1,or:{y:2}}).and({z:3})
|
||||
).to.eql ({ SELECT: {
|
||||
from: {ref:['Foo']},
|
||||
where: [
|
||||
{xpr:[
|
||||
{ref:['x']}, '=', {val:1},
|
||||
'or',
|
||||
{ref:['y']}, '=', {val:2},
|
||||
]},
|
||||
'and',
|
||||
{ref:['z']}, '=', {val:3},
|
||||
]
|
||||
}})
|
||||
|
||||
expect (
|
||||
SELECT.from(Foo).where({a:1}).or({x:1,or:{y:2}}).and({z:3})
|
||||
).to.eql ({ SELECT: {
|
||||
from: {ref:['Foo']},
|
||||
where: [
|
||||
{ref:['a']}, '=', {val:1},
|
||||
'or',
|
||||
{xpr:[
|
||||
{ref:['x']}, '=', {val:1},
|
||||
'or',
|
||||
{ref:['y']}, '=', {val:2},
|
||||
]},
|
||||
'and',
|
||||
{ref:['z']}, '=', {val:3},
|
||||
]
|
||||
}})
|
||||
|
||||
expect (
|
||||
{ SELECT: SELECT.from(Foo).where({x:1,or:{y:2}}).SELECT }
|
||||
).to.eql ({ SELECT: {
|
||||
from: {ref:['Foo']},
|
||||
where: [
|
||||
{ref:['x']}, '=', {val:1},
|
||||
'or',
|
||||
{ref:['y']}, '=', {val:2},
|
||||
]
|
||||
}})
|
||||
|
||||
}
|
||||
|
||||
|
||||
expect (
|
||||
SELECT.from(Foo).where({x:1,and:{y:2}}).or({z:3})
|
||||
|
||||
@@ -5,21 +5,10 @@ describe('cap/samples - Localized Data', () => {
|
||||
else cds.User = cds.User.Privileged // hard core monkey patch for older cds releases
|
||||
|
||||
it('serves localized $metadata documents', async () => {
|
||||
const { data } = await GET`/browse/$metadata?sap-language=de`
|
||||
const { data } = await GET(`/browse/$metadata?sap-language=de`, { headers: { 'accept-language': 'de' }})
|
||||
expect(data).to.contain('<Annotation Term="Common.Label" String="Währung"/>')
|
||||
})
|
||||
|
||||
it('supports sap-language param', async () => {
|
||||
const { data } = await GET(`/browse/Books?$select=title,author` + '&sap-language=de')
|
||||
expect(data.value).to.containSubset([
|
||||
{ title: 'Sturmhöhe', author: 'Emily Brontë' },
|
||||
{ title: 'Jane Eyre', author: 'Charlotte Brontë' },
|
||||
{ title: 'The Raven', author: 'Edgar Allen Poe' },
|
||||
{ title: 'Eleonora', author: 'Edgar Allen Poe' },
|
||||
{ title: 'Catweazle', author: 'Richard Carpenter' },
|
||||
])
|
||||
})
|
||||
|
||||
it('supports accept-language header', async () => {
|
||||
const { data } = await GET(`/browse/Books?$select=title,author`, {
|
||||
headers: { 'Accept-Language': 'de' },
|
||||
|
||||
Reference in New Issue
Block a user