first commit
This commit is contained in:
39
resources/js/plugins/fake-api/handlers/auth/index.js
Normal file
39
resources/js/plugins/fake-api/handlers/auth/index.js
Normal file
@@ -0,0 +1,39 @@
|
||||
import { rest } from 'msw'
|
||||
import { db } from '@db/auth/db'
|
||||
|
||||
export const handlerAuth = [
|
||||
rest.post(('/api/auth/login'), async (req, res, ctx) => {
|
||||
const { email, password } = await req.json()
|
||||
let errors = {
|
||||
email: ['Something went wrong'],
|
||||
}
|
||||
const user = db.users.find(u => u.email === email && u.password === password)
|
||||
if (user) {
|
||||
try {
|
||||
const accessToken = db.userTokens[user.id]
|
||||
|
||||
// We are duplicating user here
|
||||
const userData = { ...user }
|
||||
|
||||
const userOutData = Object.fromEntries(Object.entries(userData)
|
||||
.filter(([key, _]) => !(key === 'password' || key === 'abilityRules')))
|
||||
|
||||
const response = {
|
||||
userAbilityRules: userData.abilityRules,
|
||||
accessToken,
|
||||
userData: userOutData,
|
||||
}
|
||||
|
||||
return res(ctx.status(200), ctx.json(response))
|
||||
}
|
||||
catch (e) {
|
||||
errors = { email: [e] }
|
||||
}
|
||||
}
|
||||
else {
|
||||
errors = { email: ['Invalid email or password'] }
|
||||
}
|
||||
|
||||
return res(ctx.status(400), ctx.json({ errors }))
|
||||
}),
|
||||
]
|
Reference in New Issue
Block a user