-
Notifications
You must be signed in to change notification settings - Fork 0
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
[CRT-5] Added Classes API #52
Conversation
2bfa095
to
1016f30
Compare
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.
Overall LGTM, added some small comments / questions. Also check the CI ;)
@ApiQuery({ name: "teacherId", required: false, type: Number }) | ||
@ApiOkResponse({ type: ExistingClassTeacherDto, isArray: true }) | ||
async findAll( | ||
@Query("teacherId", new ParseIntPipe({ optional: true })) | ||
teacherId?: number, | ||
): Promise<ExistingClassTeacherDto[]> { |
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.
Hmm it would be nice if we did not have to add these decorators twice. according to the docs, @query should suffice? (https://docs.nestjs.com/openapi/types-and-parameters)
was there something wrong with that?
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.
I had issues originally, but I resolved them recently - I can revisit.
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.
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.
Oh I see :(
create(klass: Prisma.ClassUncheckedCreateInput): Promise<Class> { | ||
const checkedClass: Prisma.ClassCreateInput = { | ||
name: klass.name, |
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.
what is the difference between the checked/unchecked types here?
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.
checked: { ..., teacher: { connect: { id: XXX } } }
, it verifies that the ID is valid and the row exists.
unchecked: { ..., teacherId: XXX }
, inserts as-is in database and lets the thing crash if a constraint is violated.
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.
so in both cases there will be an exception but once by the db and once by prisma?
// TODO: Implement this properly when auth is available | ||
// TODO: Only allow teachers to see their own classes |
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.
and once we do that, do we still include the teacher in the response?
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.
I'd say so. Generic endpoint, same handling on the frontend, just an authz limitation.
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.
yes, makes sense!
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.
So nice!! 😄😄
No description provided.