* api routes for user management * add invites and roles to db * services * invite repo * include user in accepting invitation * include user role in create user * api password reset * delete invite * include email in reset password token * added metadata as dbawarecolumn * added events for invite handling and delete functionality * added invite model to exports * add default value member and allow null roles * conditional inclusion of invites in "list-users" * integration tests for users * helpers for user testing * add unauthenticated routes to users * simplifying create invite * create users with first and last name, and dev role * reset password endpoint * removed token from response * update user with firstname, lastname and role * create invite refactor * test password reset without email in body * removed redundant router variable * cleanup * unit tests * adjustments * service tests * adjustments according to api changes * fix cart test * cloned now works * change name to verified token for the verified token * add a space * db aware columns * fix: timestampz dbaware * more testing * add list-invites endpoint * reset-password error handling * pr issues adjusted * fixed test * add optional to link templates * move invites to a new endpoint * migrate invites to own testsuite * adjust snapshots * email constraint for invite * fix integration tests * addressing pr feedback * unit tests for extended user api * linting * fix integration tests * fix unit tests * fix: Addresses breaking change from class-transformer * fix orders testing * merge "create-claim" js and ts files * add out commented tests * update typescript endpoints to reflect changes made for user management * converted invites to typescript * add exports from api endpoints * remove old js files used for reference * integration test * import reflect metadata * invite service conversion to ts * removed unused import * update invite service to match styleguide * add "expires_at" and "token" to invite table * update invite service to save tokens and validate expires_at * fix failing tests * fix tests after adding token and expires_at to invite * add expiration to create Co-authored-by: Sebastian Rindom <skrindom@gmail.com> Co-authored-by: olivermrbl <oliver@mrbltech.com>
54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
const { User, Invite } = require("@medusajs/medusa")
|
|
import jwt from "jsonwebtoken"
|
|
|
|
const generateToken = (data) => {
|
|
return jwt.sign(data, "test", {
|
|
expiresIn: "7d",
|
|
})
|
|
}
|
|
|
|
const expires_at = new Date()
|
|
|
|
expires_at.setDate(expires_at.getDate() + 8)
|
|
|
|
module.exports = async (connection, data = {}) => {
|
|
const manager = connection.manager
|
|
|
|
const memberUser = await manager.create(User, {
|
|
id: "member-user",
|
|
role: "member",
|
|
email: "member@test.com",
|
|
first_name: "member",
|
|
last_name: "user",
|
|
})
|
|
await manager.save(memberUser)
|
|
|
|
const memberInvite = await manager.create(Invite, {
|
|
id: "memberInvite",
|
|
user_email: "invite-member@test.com",
|
|
role: "member",
|
|
token: generateToken({
|
|
invite_id: "memberInvite",
|
|
role: "member",
|
|
user_email: "invite-member@test.com",
|
|
}),
|
|
accepted: false,
|
|
expires_at: expires_at,
|
|
})
|
|
await manager.save(memberInvite)
|
|
|
|
const adminInvite = await manager.create(Invite, {
|
|
id: "adminInvite",
|
|
user_email: "invite-admin@test.com",
|
|
role: "admin",
|
|
accepted: false,
|
|
token: generateToken({
|
|
invite_id: "adminInvite",
|
|
role: "admin",
|
|
user_email: "invite-admin@test.com",
|
|
}),
|
|
expires_at: expires_at,
|
|
})
|
|
await manager.save(adminInvite)
|
|
}
|