Skip to content

Commit

Permalink
chore: Hide repository creation if they are not custom + add upsert s…
Browse files Browse the repository at this point in the history
…upport by default (#6127)
  • Loading branch information
adrien2p authored Jan 19, 2024
1 parent 8a8a718 commit 5e655dd
Show file tree
Hide file tree
Showing 124 changed files with 1,522 additions and 2,565 deletions.
8 changes: 8 additions & 0 deletions .changeset/gold-drinks-smile.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
"@medusajs/utils": patch
"@medusajs/types": patch
"@medusajs/product": patch
"@medusajs/pricing": patch
---

chore: Hide repository creation if they are not custom + add upsert support by default
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import { SqlEntityManager } from "@mikro-orm/postgresql"
import { AuthProviderRepository } from "@repositories"
import { AuthProviderService } from "@services"

import { MikroOrmWrapper } from "../../../utils"
import { createAuthProviders } from "../../../__fixtures__/auth-provider"
import { createMedusaContainer } from "@medusajs/utils"
import { asValue } from "awilix"
import ContainerLoader from "../../../../src/loaders/container"

jest.setTimeout(30000)

Expand All @@ -17,13 +19,12 @@ describe("AuthProvider Service", () => {
repositoryManager = await MikroOrmWrapper.forkManager()
testManager = await MikroOrmWrapper.forkManager()

const authProviderRepository = new AuthProviderRepository({
manager: repositoryManager,
})
const container = createMedusaContainer()
container.register("manager", asValue(repositoryManager))

service = new AuthProviderService({
authProviderRepository,
})
await ContainerLoader({ container })

service = container.resolve("authProviderService")

await createAuthProviders(testManager)
})
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import { SqlEntityManager } from "@mikro-orm/postgresql"
import { AuthUserRepository } from "@repositories"
import { AuthUserService } from "@services"

import { MikroOrmWrapper } from "../../../utils"
import { createAuthProviders } from "../../../__fixtures__/auth-provider"
import { createAuthUsers } from "../../../__fixtures__/auth-user"
import { createMedusaContainer } from "@medusajs/utils"
import { asValue } from "awilix"
import ContainerLoader from "../../../../src/loaders/container"

jest.setTimeout(30000)

Expand All @@ -18,13 +20,12 @@ describe("AuthUser Service", () => {
repositoryManager = await MikroOrmWrapper.forkManager()
testManager = await MikroOrmWrapper.forkManager()

const authUserRepository = new AuthUserRepository({
manager: repositoryManager,
})
const container = createMedusaContainer()
container.register("manager", asValue(repositoryManager))

service = new AuthUserService({
authUserRepository,
})
await ContainerLoader({ container })

service = container.resolve("authUserService")

await createAuthProviders(testManager)
await createAuthUsers(testManager)
Expand Down
2 changes: 0 additions & 2 deletions packages/authentication/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
"node": ">=16"
},
"bin": {
"medusa-authentication-migrations-down": "dist/scripts/bin/run-migration-down.js",
"medusa-authentication-migrations-up": "dist/scripts/bin/run-migration-up.js",
"medusa-authentication-seed": "dist/scripts/bin/run-seed.js"
},
"repository": {
Expand Down
17 changes: 16 additions & 1 deletion packages/authentication/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,22 @@
import { moduleDefinition } from "./module-definition"
import { Modules } from "@medusajs/modules-sdk"
import * as Models from "@models"
import { ModulesSdkUtils } from "@medusajs/utils"

export default moduleDefinition

const migrationScriptOptions = {
moduleName: Modules.AUTHENTICATION,
models: Models,
pathToMigrations: __dirname + "/migrations",
}

export const runMigrations = ModulesSdkUtils.buildMigrationScript(
migrationScriptOptions
)
export const revertMigration = ModulesSdkUtils.buildRevertMigrationScript(
migrationScriptOptions
)

export * from "./initialize"
export * from "./loaders"
export * from "./scripts"
58 changes: 10 additions & 48 deletions packages/authentication/src/loaders/container.ts
Original file line number Diff line number Diff line change
@@ -1,48 +1,10 @@
import * as defaultRepositories from "@repositories"
import * as defaultServices from "@services"

import { LoaderOptions } from "@medusajs/modules-sdk"
import { ModulesSdkTypes } from "@medusajs/types"
import { loadCustomRepositories } from "@medusajs/utils"
import { asClass } from "awilix"

export default async ({
container,
options,
}: LoaderOptions<
| ModulesSdkTypes.ModuleServiceInitializeOptions
| ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions
>): Promise<void> => {
const customRepositories = (
options as ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions
)?.repositories

container.register({
authUserService: asClass(defaultServices.AuthUserService).singleton(),
authProviderService: asClass(
defaultServices.AuthProviderService
).singleton(),
})

if (customRepositories) {
loadCustomRepositories({
defaultRepositories,
customRepositories,
container,
})
} else {
loadDefaultRepositories({ container })
}
}

function loadDefaultRepositories({ container }) {
container.register({
baseRepository: asClass(defaultRepositories.BaseRepository).singleton(),
authUserRepository: asClass(
defaultRepositories.AuthUserRepository
).singleton(),
authProviderRepository: asClass(
defaultRepositories.AuthProviderRepository
).singleton(),
})
}
import { ModulesSdkUtils } from "@medusajs/utils"
import * as ModuleModels from "@models"
import * as ModuleRepositories from "@repositories"
import * as ModuleServices from "@services"

export default ModulesSdkUtils.moduleContainerLoaderFactory({
moduleModels: ModuleModels,
moduleRepositories: ModuleRepositories,
moduleServices: ModuleServices,
})
17 changes: 0 additions & 17 deletions packages/authentication/src/repositories/auth-provider.ts

This file was deleted.

17 changes: 0 additions & 17 deletions packages/authentication/src/repositories/auth-user.ts

This file was deleted.

2 changes: 0 additions & 2 deletions packages/authentication/src/repositories/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
export { MikroOrmBaseRepository as BaseRepository } from "@medusajs/utils"
export { AuthProviderRepository } from "./auth-provider"
export { AuthUserRepository } from "./auth-user"
8 changes: 0 additions & 8 deletions packages/authentication/src/scripts/bin/run-migration-down.ts

This file was deleted.

8 changes: 0 additions & 8 deletions packages/authentication/src/scripts/bin/run-migration-up.ts

This file was deleted.

2 changes: 0 additions & 2 deletions packages/authentication/src/scripts/index.ts

This file was deleted.

50 changes: 0 additions & 50 deletions packages/authentication/src/scripts/migration-down.ts

This file was deleted.

62 changes: 0 additions & 62 deletions packages/authentication/src/scripts/migration-up.ts

This file was deleted.

2 changes: 1 addition & 1 deletion packages/authentication/src/services/auth-user.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default class AuthUserService<
create: ServiceTypes.CreateAuthUserDTO
}
>(AuthUser)<TEntity> {
constructor({ authUserRepository }: InjectedDependencies) {
constructor(container: InjectedDependencies) {
// @ts-ignore
super(...arguments)
}
Expand Down
26 changes: 26 additions & 0 deletions packages/authentication/src/types/repositories/index.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,28 @@
import { AuthProvider, AuthUser } from "@models"
import { CreateAuthProviderDTO, UpdateAuthProviderDTO } from "./auth-provider"
import { DAL } from "@medusajs/types"
import { CreateAuthUserDTO, UpdateAuthUserDTO } from "./auth-user"

export * from "./auth-user"
export * from "./auth-provider"

// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface IAuthProviderRepository<
TEntity extends AuthProvider = AuthProvider
> extends DAL.RepositoryService<
TEntity,
{
create: CreateAuthProviderDTO
update: UpdateAuthProviderDTO
}
> {}

// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface IAuthUserRepository<TEntity extends AuthUser = AuthUser>
extends DAL.RepositoryService<
TEntity,
{
create: CreateAuthUserDTO
update: UpdateAuthUserDTO
}
> {}
Loading

0 comments on commit 5e655dd

Please sign in to comment.