feat: Implement medusa payments provider (#13772)
* feat: Implement medusa payments provider * chore: Improvements after testing * chore: Add typings to medusa payments * fix: Final changes to complete medusa payment provider * update package * fix: Final changes to complete medusa payment provider --------- Co-authored-by: adrien2p <adrien.deperetti@gmail.com> Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
This commit is contained in:
co-authored by
adrien2p
Oli Juhl
parent
1defb3c29b
commit
ef7b9b9375
@@ -2016,6 +2016,8 @@ describe("defineConfig", function () {
|
||||
process.env.MEDUSA_CLOUD_ENVIRONMENT_HANDLE = "test-environment"
|
||||
process.env.MEDUSA_CLOUD_API_KEY = "test-api-key"
|
||||
process.env.MEDUSA_CLOUD_EMAILS_ENDPOINT = "test-emails-endpoint"
|
||||
process.env.MEDUSA_CLOUD_PAYMENTS_ENDPOINT = "test-payments-endpoint"
|
||||
process.env.MEDUSA_CLOUD_WEBHOOK_SECRET = "test-webhook-secret"
|
||||
const config = defineConfig()
|
||||
process.env = { ...originalEnv }
|
||||
|
||||
@@ -2112,6 +2114,15 @@ describe("defineConfig", function () {
|
||||
"resolve": "@medusajs/medusa/order",
|
||||
},
|
||||
"payment": {
|
||||
"options": {
|
||||
"cloud": {
|
||||
"api_key": "test-api-key",
|
||||
"endpoint": "test-payments-endpoint",
|
||||
"environment_handle": "test-environment",
|
||||
"sandbox_handle": undefined,
|
||||
"webhook_secret": "test-webhook-secret",
|
||||
},
|
||||
},
|
||||
"resolve": "@medusajs/medusa/payment",
|
||||
},
|
||||
"pricing": {
|
||||
@@ -2165,7 +2176,9 @@ describe("defineConfig", function () {
|
||||
"apiKey": "test-api-key",
|
||||
"emailsEndpoint": "test-emails-endpoint",
|
||||
"environmentHandle": "test-environment",
|
||||
"paymentsEndpoint": "test-payments-endpoint",
|
||||
"sandboxHandle": undefined,
|
||||
"webhookSecret": "test-webhook-secret",
|
||||
},
|
||||
"databaseUrl": "postgres://localhost/medusa-starter-default",
|
||||
"http": {
|
||||
@@ -2197,6 +2210,8 @@ describe("defineConfig", function () {
|
||||
process.env.MEDUSA_CLOUD_SANDBOX_HANDLE = "test-sandbox"
|
||||
process.env.MEDUSA_CLOUD_API_KEY = "test-api-key"
|
||||
process.env.MEDUSA_CLOUD_EMAILS_ENDPOINT = "test-emails-endpoint"
|
||||
process.env.MEDUSA_CLOUD_PAYMENTS_ENDPOINT = "test-payments-endpoint"
|
||||
process.env.MEDUSA_CLOUD_WEBHOOK_SECRET = "test-webhook-secret"
|
||||
const config = defineConfig()
|
||||
process.env = { ...originalEnv }
|
||||
|
||||
@@ -2293,6 +2308,15 @@ describe("defineConfig", function () {
|
||||
"resolve": "@medusajs/medusa/order",
|
||||
},
|
||||
"payment": {
|
||||
"options": {
|
||||
"cloud": {
|
||||
"api_key": "test-api-key",
|
||||
"endpoint": "test-payments-endpoint",
|
||||
"environment_handle": undefined,
|
||||
"sandbox_handle": "test-sandbox",
|
||||
"webhook_secret": "test-webhook-secret",
|
||||
},
|
||||
},
|
||||
"resolve": "@medusajs/medusa/payment",
|
||||
},
|
||||
"pricing": {
|
||||
@@ -2346,7 +2370,9 @@ describe("defineConfig", function () {
|
||||
"apiKey": "test-api-key",
|
||||
"emailsEndpoint": "test-emails-endpoint",
|
||||
"environmentHandle": undefined,
|
||||
"paymentsEndpoint": "test-payments-endpoint",
|
||||
"sandboxHandle": "test-sandbox",
|
||||
"webhookSecret": "test-webhook-secret",
|
||||
},
|
||||
"databaseUrl": "postgres://localhost/medusa-starter-default",
|
||||
"http": {
|
||||
@@ -2378,13 +2404,17 @@ describe("defineConfig", function () {
|
||||
process.env.MEDUSA_CLOUD_ENVIRONMENT_HANDLE = "test-environment"
|
||||
process.env.MEDUSA_CLOUD_API_KEY = "test-api-key"
|
||||
process.env.MEDUSA_CLOUD_EMAILS_ENDPOINT = "test-emails-endpoint"
|
||||
process.env.MEDUSA_CLOUD_PAYMENTS_ENDPOINT = "test-payments-endpoint"
|
||||
process.env.MEDUSA_CLOUD_WEBHOOK_SECRET = "test-webhook-secret"
|
||||
const config = defineConfig({
|
||||
projectConfig: {
|
||||
http: {} as any,
|
||||
cloud: {
|
||||
environmentHandle: "overriden-environment",
|
||||
apiKey: "overriden-api-key",
|
||||
webhookSecret: "overriden-webhook-secret",
|
||||
emailsEndpoint: "overriden-emails-endpoint",
|
||||
paymentsEndpoint: "overriden-payments-endpoint",
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -2483,6 +2513,15 @@ describe("defineConfig", function () {
|
||||
"resolve": "@medusajs/medusa/order",
|
||||
},
|
||||
"payment": {
|
||||
"options": {
|
||||
"cloud": {
|
||||
"api_key": "overriden-api-key",
|
||||
"endpoint": "overriden-payments-endpoint",
|
||||
"environment_handle": "overriden-environment",
|
||||
"sandbox_handle": undefined,
|
||||
"webhook_secret": "overriden-webhook-secret",
|
||||
},
|
||||
},
|
||||
"resolve": "@medusajs/medusa/payment",
|
||||
},
|
||||
"pricing": {
|
||||
@@ -2536,7 +2575,9 @@ describe("defineConfig", function () {
|
||||
"apiKey": "overriden-api-key",
|
||||
"emailsEndpoint": "overriden-emails-endpoint",
|
||||
"environmentHandle": "overriden-environment",
|
||||
"paymentsEndpoint": "overriden-payments-endpoint",
|
||||
"sandboxHandle": undefined,
|
||||
"webhookSecret": "overriden-webhook-secret",
|
||||
},
|
||||
"databaseUrl": "postgres://localhost/medusa-starter-default",
|
||||
"http": {
|
||||
|
||||
@@ -365,19 +365,16 @@ function normalizeProjectConfig(
|
||||
projectConfig: InputConfig["projectConfig"],
|
||||
{ isCloud }: { isCloud: boolean }
|
||||
): ConfigModule["projectConfig"] {
|
||||
const {
|
||||
http,
|
||||
redisOptions,
|
||||
sessionOptions,
|
||||
cloud,
|
||||
...restOfProjectConfig
|
||||
} = projectConfig || {}
|
||||
const { http, redisOptions, sessionOptions, cloud, ...restOfProjectConfig } =
|
||||
projectConfig || {}
|
||||
|
||||
const mergedCloudOptions: MedusaCloudOptions = {
|
||||
environmentHandle: process.env.MEDUSA_CLOUD_ENVIRONMENT_HANDLE,
|
||||
sandboxHandle: process.env.MEDUSA_CLOUD_SANDBOX_HANDLE,
|
||||
apiKey: process.env.MEDUSA_CLOUD_API_KEY,
|
||||
webhookSecret: process.env.MEDUSA_CLOUD_WEBHOOK_SECRET,
|
||||
emailsEndpoint: process.env.MEDUSA_CLOUD_EMAILS_ENDPOINT,
|
||||
paymentsEndpoint: process.env.MEDUSA_CLOUD_PAYMENTS_ENDPOINT,
|
||||
...cloud,
|
||||
}
|
||||
const hasCloudOptions = Object.values(mergedCloudOptions).some(
|
||||
@@ -492,7 +489,18 @@ function applyCloudOptionsToModules(
|
||||
...(module.options ?? {}),
|
||||
}
|
||||
break
|
||||
// Will add payment module soon
|
||||
case Modules.PAYMENT:
|
||||
module.options = {
|
||||
cloud: {
|
||||
api_key: config.apiKey,
|
||||
webhook_secret: config.webhookSecret,
|
||||
endpoint: config.paymentsEndpoint,
|
||||
environment_handle: config.environmentHandle,
|
||||
sandbox_handle: config.sandboxHandle,
|
||||
},
|
||||
...(module.options ?? {}),
|
||||
}
|
||||
break
|
||||
default:
|
||||
break
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user