feat(medusa, types, core-flows): Add invite endpoints for api-v2 (#6395)
**What** - Add invite endpoints for simple operations on invites
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
import { User } from "@models"
|
||||
import { Invite, User } from "@models"
|
||||
import { MapToConfig } from "@medusajs/utils"
|
||||
import { ModuleJoinerConfig } from "@medusajs/types"
|
||||
import { Modules } from "@medusajs/modules-sdk"
|
||||
|
||||
export const LinkableKeys = {
|
||||
user_id: User.name,
|
||||
invite_id: Invite.name,
|
||||
}
|
||||
|
||||
const entityLinkableKeysMap: MapToConfig = {}
|
||||
@@ -22,10 +23,19 @@ export const joinerConfig: ModuleJoinerConfig = {
|
||||
serviceName: Modules.USER,
|
||||
primaryKeys: ["id"],
|
||||
linkableKeys: LinkableKeys,
|
||||
alias: {
|
||||
name: ["user", "users"],
|
||||
args: {
|
||||
entity: User.name,
|
||||
alias: [
|
||||
{
|
||||
name: ["user", "users"],
|
||||
args: {
|
||||
entity: User.name,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: ["invite", "invites"],
|
||||
args: {
|
||||
entity: Invite.name,
|
||||
methodSuffix: "Invites",
|
||||
},
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
@@ -130,7 +130,7 @@ export default class UserModuleService<
|
||||
): Promise<UserTypes.InviteDTO | UserTypes.InviteDTO[]> {
|
||||
const input = Array.isArray(data) ? data : [data]
|
||||
|
||||
const invites = await this.inviteService_.create(input, sharedContext)
|
||||
const invites = await this.createInvites_(input, sharedContext)
|
||||
|
||||
const serializedInvites = await this.baseRepository_.serialize<
|
||||
UserTypes.InviteDTO[] | UserTypes.InviteDTO
|
||||
@@ -141,6 +141,25 @@ export default class UserModuleService<
|
||||
return Array.isArray(data) ? serializedInvites : serializedInvites[0]
|
||||
}
|
||||
|
||||
@InjectTransactionManager("baseRepository_")
|
||||
private async createInvites_(
|
||||
data: UserTypes.CreateInviteDTO[],
|
||||
@MedusaContext() sharedContext: Context = {}
|
||||
): Promise<TInvite[]> {
|
||||
// expiration date in 10 days
|
||||
const expirationDate = new Date().setDate(new Date().getDate() + 10)
|
||||
|
||||
const toCreate = data.map((invite) => {
|
||||
return {
|
||||
...invite,
|
||||
expires_at: new Date(expirationDate),
|
||||
token: "placeholder", // TODO: generate token
|
||||
}
|
||||
})
|
||||
|
||||
return await this.inviteService_.create(toCreate)
|
||||
}
|
||||
|
||||
updateInvites(
|
||||
data: UserTypes.UpdateInviteDTO[],
|
||||
sharedContext?: Context
|
||||
|
||||
Reference in New Issue
Block a user