-
Notifications
You must be signed in to change notification settings - Fork 17
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
BC-4784 Migrate school endpoint for login to api/v3 #4718
Conversation
apps/server/src/modules/school/domain/service/school.service.ts
Outdated
Show resolved
Hide resolved
public async getSchoolsBySystemIds(systemIds: string[]): Promise<School[]> { | ||
const entities = await this.em.find( | ||
SchoolEntity, | ||
{ systems: { $in: systemIds } }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ich frage mich, ob mikrorom strings ins ObjectId umwandelt?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ist das ne allgemeine Frage oder speziell auf die Stelle bezogen? Normalerweise kann man IDs ja als Strings an MikroOrm übergeben, siehe z.B.: https://mikro-orm.io/docs/5.9/entity-manager#conditions-object-filterqueryt Ich erwarte hier kein anderes Verhalten und es funktioniert auch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ne speziell auf diese Stelle im db.schools.systems: [ObjectId("abc")] also sind die ObjectIds gespeichert. und insuche mit $in: ["abc"] suchst du nach strings. Es wird zu kein Ergebnis führen. Ich was das ich im TypeORM musste ich so was machen wie const systemId = sustems.map(sustem => new ObjectId(system.id))
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Es führt wie gesagt zu einem Ergebnis. Das ist doch auch die gleiche Situation, wie wenn du direkt mit der ID suchst. Da steht in der Datenbank doch auch ne ObjectId, aber du übergibst nen String.
Ich hab gerade mal im Code von MikroOrm geschaut. Ich nehme an, dass an dieser Stelle IDs in String-form zu ObjectIds umgewandelt werden: https://github.com/mikro-orm/mikro-orm/blob/9eb9f90d1b63cfea83cbdb4d9ef1bb37d9b966fb/packages/mongodb/src/MongoDriver.ts#L320 Aber ist nicht gerade leichtverständlich...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Das ist übrigens nicht der $in-Operator von MongoDB, also nicht direkt eine Mongo-Query, sondern der von MikroOrm: https://mikro-orm.io/docs/5.9/query-conditions
Vielleicht ist das bei TypeORM anders? Dass man da direkt eine Mongo-Query übergeben kann?
apps/server/src/modules/school/api/dto/response/school-for-ldap-login.response.ts
Outdated
Show resolved
Hide resolved
Quality Gate passedKudos, no new issues were introduced! 0 New issues |
Description
Links to Tickets or other pull requests
https://ticketsystem.dbildungscloud.de/browse/BC-4784
hpi-schul-cloud/schulcloud-client#3397
hpi-schul-cloud/nuxt-client#3061
Changes
Datasecurity
Deployment
New Repos, NPM pakages or vendor scripts
Approval for review
generate-client:server
was executed in vue frontend and changes were tested and put in a PR with the same branch name.