Happy Thoughts API - Gabriella#34
Conversation
…ta base seeding function
…actor the delete route with better error handling
…n for authenticating a user that can be used in an authorized only route
…Token sent in the request headers
…orization header + use it to add an isCreator field to each thought
…sCreator can be computed on an object that includes the uderId
…tch route for updating likes according the new schema + create authenticated route for a user´s liked thoughts
SaraEnderborg
left a comment
There was a problem hiding this comment.
Snyggt jobbat Gabriella! Du har alltid så innovativa lösningar och jag lär mig alltid något nytt av din kod. Den är clean och lätt att hänga med i med bra struktur. Bara några små tankar kring Auth bla. Grymt jobbat!
| }, | ||
| editToken: { | ||
| type: String, | ||
| default: () => crypto.randomUUID() |
There was a problem hiding this comment.
Du använder crypto.randomUUID men importerar aldrig crypto i den här filen. Fungerar det ändå kanske?
|
|
||
| // Global middleware for authentication - To attach req.user everywhere | ||
| // I.e. if there is an accessToken in request header, find the matching user of it and attach it to every request | ||
| export const optionalAuth = async (req, res, next) => { |
There was a problem hiding this comment.
Jag älskar hur du har gjort det här tvåstegsmönstret med auth och optionalAuth – det är väldigt kreativt, och det verkar fungera precis så som du vill att det ska.
Men om du skulle vilja använda Bearer, kanske det kan inkluderas genom att först definiera en const authHeader och en const accessToken.
| }); | ||
|
|
||
| /* --- Execute filter and sorting --- */ | ||
| const thoughts = await Thought.aggregate(filterAndSort); |
There was a problem hiding this comment.
Var tvungen att kolla upp "aggregate" aldrig sett förut😅 tack för att jag fick lära mig nåt nytt:) verkar dock kunna bli problem vid equals eftersom aggregate inte returnerar mongoose dokument utan vanlig js-objekt och equals hör ihop med mongoose dokument om jag fattade rätt. Nåt att kolla på kanske.
| type: Date, | ||
| default: Date.now | ||
| }, | ||
| editToken: { |
There was a problem hiding this comment.
smart med både userId och editToken för persistence i samma schema:)
API Link: https://js-project-api-wdi2.onrender.com
Netlify Link: https://happysharing.netlify.app/