Skip to content
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

Merged
merged 28 commits into from
Feb 5, 2024

Conversation

dyedwiper
Copy link
Contributor

@dyedwiper dyedwiper commented Jan 25, 2024

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

  • DEV: If api was changed - generate-client:server was executed in vue frontend and changes were tested and put in a PR with the same branch name.
  • QA: In addition to review, the code has been manually tested (if manual testing is possible)
  • All points were discussed with the ticket creator, support-team or product owner. The code upholds all quality guidelines from the PR-template.

Notice: Please remove the WIP label if the PR is ready to review, otherwise nobody will review it.

apps/server/src/modules/system/repo/system.repo.ts Outdated Show resolved Hide resolved
public async getSchoolsBySystemIds(systemIds: string[]): Promise<School[]> {
const entities = await this.em.find(
SchoolEntity,
{ systems: { $in: systemIds } },
Copy link
Contributor

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?

Copy link
Contributor Author

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.

Copy link
Contributor

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

Copy link
Contributor Author

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...

Copy link
Contributor Author

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?

Copy link

sonarqubecloud bot commented Feb 5, 2024

@dyedwiper dyedwiper merged commit 343261d into main Feb 5, 2024
46 of 47 checks passed
@dyedwiper dyedwiper deleted the bc-4784-migrate-schools-list branch February 5, 2024 14:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants