Commit Graph
100 Commits
Author SHA1 Message Date
Shahed NasserandGitHub 7a8937fcba fix(medusa): use pre-defined type in subscriber args (#7328) 2024-05-14 17:37:58 +03:00
Shahed NasserandGitHub 9ca302d33f fix(medusa): fix type of data in SubscriberArgs (#7324) 2024-05-14 13:59:25 +03:00
Shahed NasserandGitHub 70c4ffff8b docs: improve API testing feature (#7311) 2024-05-14 10:12:53 +03:00
Shahed NasserandGitHub 8958214350 chore: fix docs PR label removing team label (#7308)
* chore: fix docs PR labeler to only run with PR is opened

* add team labeler action

* move docs labeler to team labeler
2024-05-13 18:55:31 +03:00
Shahed NasserandGitHub 7cb90f8e82 docs: editing and general fixes of medusa's learning resources (#7261)
* docs: editing and general fixes of medusa's learning resources

* fix build script

* update ui dependency

* fix build

* adjust next.js steps
2024-05-13 18:55:11 +03:00
Shahed NasserandGitHub 803e4aad02 docs: added file module docs (#7278) 2024-05-13 18:54:59 +03:00
Shahed NasserandGitHub 8b2429d24f chore(medusa-oas-cli,oas-github-ci): remove v2 option + generate v2 by default (#7304)
* chore(medusa-oas-cli,oas-github-ci): remove v2 option + generate v2 by default

* fixes to changeset

* fix public url path
2024-05-13 17:01:38 +03:00
Shahed NasserandGitHub 728c5ee53c docs: preparations for preview (#7267)
* configured base paths + added development banner

* fix typelist site url

* added navbar and sidebar badges

* configure algolia filters

* remove AI assistant

* remove unused imports

* change navbar text and badge

* lint fixes

* fix build error

* add to api reference rewrites

* fix build error

* fix build errors in user-guide

* fix feedback component

* add parent title to pagination

* added breadcrumbs component

* remove user-guide links

* resolve todos

* fix details about authentication

* change documentation title

* lint content
2024-05-13 11:32:52 +03:00
Shahed NasserandGitHub 3e3b8a483f chore: add action to automatically label docs (#7284)
* chore: add action to automatically label docs

* removes the paths param
2024-05-13 09:36:47 +03:00
Shahed NasserandGitHub 1a68f4602c feat(api-ref): show schema of a tag (#7297) 2024-05-10 21:07:35 +03:00
Shahed NasserandGitHub e960f10aba fix(docblock-generator): fix how type names created from Zod objects are inferred (#7292) 2024-05-10 21:06:55 +03:00
Shahed NasserandGitHub 489a54e1fb fix(docblock-generator): eslint errors + missing await (#7281)
* chore: add missing await in docblock generator

* add fix for undefined symbol

* fix dirname path
2024-05-09 17:23:59 +03:00
Shahed NasserandGitHub 5d0ffe8ff4 docs: refactored versioning in api reference + modified v2 content (#7274) 2024-05-09 17:23:49 +03:00
Shahed NasserandGitHub c71a06c87f fix(medusa): import and use RequestQueryFields from types package (#7275)
Noticed that `RequestQueryFields` is defined in both the `medusa` and `types` package. Within the `medusa` package sometimes it uses the local type definition or the definition in `types`.

This PR removes the type definition of `RequestQueryFields` in `medusa` and uses that in `types` instead.
2024-05-08 12:55:29 +00:00
Shahed NasserandGitHub 67944dcc92 fix(medusa): Fix request type in upload route (#7271)
The `/admin/uploads` route uses an incorrect input type `CreateProductDTO`. This PR fixes it to the type defined in `validators.ts`.
2024-05-08 10:47:35 +00:00
Shahed NasserandGitHub 327e446974 docs: general fixes and overall changes (#7258)
* editing halfway

* edited second half

* adjust starter steps

* fix build

* typo fix
2024-05-07 18:00:28 +02:00
Shahed NasserandGitHub 14d15df866 docs: added advanced workflows documentation (#7252) 2024-05-07 10:32:36 +03:00
e7a3528367 fix(create-medusa-app): don't open browser to admin if v2 option is passed (#7253)
Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2024-05-06 18:35:32 +02:00
Shahed NasserandGitHub 651b953db7 fix(medusa-oas-cli, oas-github-ci): updated paths to docs directories following monorepo reorganization (#7245)
* fix(medusa-oas-cli, oas-github-ci): updated paths to docs directories following monorepo reorganization

* revert change to workspaces

* change oas in workspaces

* revert change in test script
2024-05-06 16:15:38 +03:00
Shahed NasserandGitHub 7b2879d643 chore(docs): Fix docblock-generator OAS tool's max-stack error (#7246)
* regenerate oas to fix duplicate keys

* fix clean:oas script

* fix max-stack errors

* fix max-level condition
2024-05-06 13:41:59 +03:00
Shahed NasserandGitHub b39de05535 chore: move docs-util to www (#7232)
* reorganize docs apps

* add README

* fix directory

* add condition for old docs

* move docs-util to www

* remove remaining docs-util

* fixes of paths

* fix scripts

* path fixes

* fix github actions

* add build packages script
2024-05-06 09:13:50 +03:00
Shahed NasserandGitHub 4fe28f5a95 chore: reorganize docs apps (#7228)
* reorganize docs apps

* add README

* fix directory

* add condition for old docs
2024-05-03 17:36:38 +03:00
Shahed NasserandGitHub 5bc780a646 feat(medusa-cli): added v2 flag (#7211) 2024-05-03 08:43:54 +02:00
Shahed NasserandGitHub b6083ce104 docs: added documentation for toast component changes (#7141)
* docs: added documentation for toast component changes

* added redirect from use-toast docs to upgrade guide

* remove unused file

* content linting fixes

* update UI package version

* updated ui preset

* fix upgrade guides main page
2024-05-01 18:12:10 +03:00
Shahed NasserandGitHub 347aece924 feat(docs-util): predefined OAS schemas (#7139)
* feat(docs-util): predefined OAS schemas

* small fix
2024-04-25 10:01:23 +02:00
Shahed NasserandGitHub f1a7821c19 docs-util: fix clean command removing used schemas (#6774) 2024-04-25 10:00:54 +02:00
Shahed NasserandGitHub abf1283ab6 docs: add details about the new host option of admin (#7142) 2024-04-24 18:01:11 +02:00
Shahed NasserandGitHub cfd765bece chore(ui): added API reference comments for Toast component (#7129) 2024-04-23 13:25:06 +02:00
Shahed NasserandGitHub 14748755ee chore: remove team from generate docblock actions (#6953) 2024-04-23 12:22:36 +02:00
Shahed NasserandGitHub 14a7378375 chore: add action to generate v2 oas (#7040) 2024-04-23 11:10:37 +03:00
Shahed NasserandGitHub c3efac5a0d fix(medusa-core-utils): add missing awilix dependency (#7003)
`medusa-core-utils` has a missing dependency `awilix` which sometimes result in errors as reported in issue #6884

This PR adds the missing dependency
2024-04-15 07:56:40 +00:00
Shahed NasserandGitHub 7934fbdd1e docs: fix download button in API reference (#7039)
* docs: fix download button in API reference

* remove comments
2024-04-15 09:37:24 +02:00
Shahed NasserandGitHub ed0313adef docs: change supabase database url format (#7036) 2024-04-15 09:35:58 +02:00
Shahed NasserandGitHub 0c12d7e7d7 docs: add note about expanding nested relations (#7008) 2024-04-15 09:32:57 +02:00
Shahed NasserandGitHub 8958760d5b docs: fixes to Digital Product recipe (#7025) 2024-04-15 09:32:07 +02:00
Shahed NasserandGitHub 8b388b815b docs: add a section about missing migration name (#7013) 2024-04-15 09:31:24 +02:00
Shahed NasserandGitHub 793184bf42 docs: improvements to railway deployment guide + new troubleshooting guide (#7012) 2024-04-15 09:30:31 +02:00
Shahed NasserandGitHub 78f603e4f1 docs: fix typedoc errors and warnings (#7006)
* docs: fix typedoc errors and warnings

* added missing quotations
2024-04-09 17:56:14 +03:00
Shahed NasserandGitHub ef39985d66 chore: Added TSDocs for the Fulfillment Module (#6912)
Added TSDocs for the Fulfillment Module
2024-04-08 08:17:38 +00:00
Shahed NasserandGitHub cbf2e6300d chore: added tsdocs to Region Module resources (#6799)
* chore: added tsdocs to Region Module resources

* typo fix
2024-04-05 19:35:14 +02:00
Shahed NasserandGitHub bde80a8371 chore: add TSDocs to the Promotion Module (#6793) 2024-04-05 12:06:35 +02:00
Shahed NasserandGitHub 0a8718f0c5 chore: added tsdocs to Cart Module (#6881) 2024-04-05 12:04:15 +02:00
Shahed NasserandGitHub bd2c5aca16 chore: added tsdocs for the Tax Module (#6902) 2024-04-05 12:03:03 +02:00
Shahed NasserandGitHub 3507e5e263 chore: updated TSDocs of the Pricing Module (#6894) 2024-04-05 12:02:46 +02:00
Shahed NasserandGitHub 4c374e3a14 chore: add TSDocs to the Payment Module (#6885) 2024-04-05 12:01:36 +02:00
Shahed NasserandGitHub d345496dbc chore: added tsdocs for the Auth Module (#6863) 2024-04-05 12:01:08 +02:00
Shahed NasserandGitHub f65e1dedbc chore: added tsdocs for Stock Location Next Module (#6817) 2024-04-05 12:00:46 +02:00
Shahed NasserandGitHub f25d55bd4f chore: added tsdocs to the Inventory Next Module (#6814) 2024-04-05 12:00:23 +02:00
Shahed NasserandGitHub 72564c917f chore: add tsdocs for the Customer Module (#6784) 2024-04-05 11:59:08 +02:00
Shahed NasserandGitHub 8901e32dba chore: add tsdocs for the Store Module resources (#6795)
* chore: add tsdocs to Store Module resources

* added examples
2024-04-05 11:58:53 +02:00
Shahed NasserandGitHub 0bf0bf819b fix(admin-ui): Resolve node-gyp error during installation with npm (#6952)
Fix `node-gyp` error that occurs during installation when using NPM and 20+ versions of Node.js. The error results from the package `@stdlib/number-float64-base-normalize` which is a dependency of `@segment/analytics-next`. Installing v0.0.8 resolves the error.

More details in PR #6485

## Testing

To test out the fix:

1. In a Medusa backend, remove the installation of `@stdlib/number-float64-base-normalize` (if available) and add instead the following override:

```json
  "overrides": {
    "@medusajs/admin": {
      "@medusajs/admin-ui": "2.1.14-snapshot-20240405070935"
    }
  }
```

2. Remove node_modules + any previous package-lock.json
3. Change to node v20+ and use npm to install dependencies -> no error occurs during installation.
2024-04-05 07:56:39 +00:00
Shahed NasserandGitHub 3dcf5224a1 chore: updated TSDocs of the Currency Module (#6908)
Updated TSDocs of the Currency Module
2024-04-03 07:32:08 +00:00
Shahed NasserandGitHub 8363dbec4f chore: update TSDocs of the Product Module (#6897)
Updated TSDocs of the Product Module.
2024-04-01 15:46:40 +00:00
Shahed NasserandGitHub 1ea0778264 chore: added TSDocs to auth_cors configuration (#6895)
Added description of `auth_cors` configuration as TSDoc comment
2024-04-01 15:21:23 +00:00
Shahed NasserandGitHub fe1d3a4a78 feat(create-medusa-app): Add a --verbose option. (#6027)
## What

Adds a `--verbose` option that shows the output of all underlying processes in real-time.

## Why

This is helpful for testing and debugging issues, especially issues that the community runs into. We can ask community members to pass the `--verbose` option and provide us with the outputted logs if they face problems.

## Caveats

When installing the Next.js starter then terminating the process, the main and child processes don't receive the abort signal as it seems to occur in the child process. This leads to the command continuing but then running into an error in the next step.

As this option is only used for debugging, I don't think it's a big issue.

## Testing

Run the `create-medusa-app` snapshot below with `--verbose` option. Or, change to the `packages/create-medusa-app` directory and run:

```bash
yarn dev --directory-path ~/some-dir --verbose
```

> The `--directory-path` option in this case is necessary as installing the medusa backend in the current `packages/create-medusa-app` directory leads to errors related to yarn workspaces.
2024-04-01 09:13:44 +00:00
Shahed NasserandGitHub 412111e1ea chore: fix doc announcement actions (#6856)
- Fix error in doc announcement actions due to missing build step.
- Update the announcement in the docs to the latest version
2024-03-28 17:23:25 +00:00
Shahed NasserandGitHub 21156f945d docs-util: added AI generator (#6770)
## What

Adds an AI generator to the docblock tool that uses OpenAI.

The generator at the moment only generates examples for functions when the `--generate-examples` option is provided.

## Note

I've included the generated examples of the `IOrderModuleService` as a reference of the type of result provided by the AI generator, with minor tweeks I've made. I haven't made any changes to descriptions in that file.
2024-03-28 11:32:30 +00:00
Shahed NasserandGitHub 5e53b917f7 chore: add tsdocs for the Sales Channel Module (#6794)
Add/update TSDocs to the Sales Channel Module's resources
2024-03-27 18:24:00 +00:00
Shahed NasserandGitHub 16860cc883 docs: added doc pages for v1.20.4 (#6828)
- Added new documentation page for Medusa Worker.
- Updated Railway deployment guide with details on Medusa Worker.
- Small adjustments to the `worker_mode` option's TSDocs.
2024-03-26 19:19:57 +00:00
e005987adf fix(medusa-oas-cli): fix tool not working in Medusa backends (#6812)
* fix(medusa-oas-cli): fix tool not working in custom projects

* fix changeset message

---------

Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
2024-03-26 09:33:06 +02:00
Shahed NasserandGitHub fbc369705d feat(create-medusa-app): Added --v2 option (#6729)
## What

Added a `--v2` option to the `create-medusa-app` command that clones the [feat/v2](https://github.com/medusajs/medusa-starter-default/pull/150) branch of the starter default and makes minor changes to the setup process.

## Why

This option is supposed to make it easier to test out internally a Medusa setup with all the commerce modules. The starter's branch installs and configures the modules + the V2 feature flag.

## Testing

To test it out, run the snapshot with the `--v2` option.

## Notes

- I couldn't install the new admin dashboard in the starter branch as it's not on NPM yet (at the time of writing this), so at the moment, this opens the current admin dashboard instead.
- When trying to create an invite using the CLI tool I get the error `Unable to resolve inviteService`. Not sure if we should also make changes to the CLI tool to allow creating an invite when V2 is enabled (I know now invites are creating within the User Module, so maybe when the V2 feature flag is enabled that should be resolved instead), but for now I just disabled running the create invite command as this is mainly for internal testing. Let me know what the suggested approach is here.
2024-03-25 12:51:15 +00:00
Shahed NasserandGitHub bb3cace0cd chore: add TSDocs to the API Key Module (#6785)
Add TSDocs to the API Key Module's resources
2024-03-22 12:23:44 +00:00
Shahed NasserandGitHub bb87db8342 docs: prep for v2 documentation (#6710)
This PR includes documentation that preps for v2 docs (but doesn't introduce new docs).

_Note: The number of file changes in the PR is due to find-and-replace within the `references` which is unavoidable. Let me know if I should move it to another PR._

## Changes

- Change Medusa version in base OAS used for v2.
- Fix to docblock generator related to not catching all path parameters.
- Added typedoc plugin that generates ER Diagrams, which will be used specifically for data model references in commerce modules.
- Changed OAS tool to output references in `www/apps/api-reference/specs-v2` directory when the `--v2` option is used.
- Added a version switcher to the API reference to switch between V1 and V2. This switcher is enabled by an environment variable, so it won't be visible/usable at the moment.
- Upgraded docusaurus to v3.0.1
- Added new Vale rules to ensure correct spelling of Medusa Admin and module names.
- Added new components to the `docs-ui` package that will be used in future documentation changes.
2024-03-18 07:47:35 +00:00
Shahed NasserandGitHub 480b4744af fix(dashboard): fixed some strings (#6686)
Fixed some strings in the admin dashboard.
2024-03-14 15:43:14 +00:00
Shahed NasserandGitHub d38b5eb790 docs: fix migrations path in extend entity docs (#6645) 2024-03-11 08:44:53 +01:00
Shahed NasserandGitHub 531e9e1e94 docs: hide admin translations contribution page (#6603) 2024-03-06 21:25:33 +01:00
Shahed NasserandGitHub 82db53c99e docs: fix search in api reference (#6578)
* docs: fix search in api reference

* remove log messages
2024-03-05 10:02:56 +01:00
Shahed NasserandGitHub 860d56041a docs: fixes to CLI reference (#6530) 2024-02-29 13:37:36 +01:00
Shahed NasserandGitHub 3b18f399c1 docs(ui): show icon tooltip on small devices (#6407) 2024-02-26 08:31:36 +01:00
Shahed NasserandGitHub c86e27bd0d chore: generated tsdocs (#6352)
Generated TSDocs for the past release.

Note: I haven't updated examples as the examples are for modules without a public reference yet, so the examples can wait.
2024-02-23 15:21:16 +00:00
Shahed NasserandGitHub 52afc619b3 docs: typo fix in create event module reference (#6470) 2024-02-22 12:16:18 +01:00
Shahed NasserandGitHub c3e30224c7 docs: add missing widget props for collections injection zones (#6452)
* docs: add missing widget props for collections injection zones

Adds missing widget props for the `product_collection.details.before` and `product_collection.details.after` injection zones.

* fix lint error
2024-02-21 07:49:30 +01:00
Shahed NasserandGitHub 68123c6ffd docs: add missing steps to enable medusa_v2 flag (#6406) 2024-02-16 14:20:52 +00:00
Shahed NasserandGitHub 0d68eadf84 docs: add ignore tag to isPaymentProcessor (#6410)
- Add ignore tags to `isPaymentProcessor` method and property
- Generate payment reference to move the associated section.
2024-02-16 12:51:14 +00:00
Shahed NasserandGitHub 16927469eb docs: fixes to code snippets in Workflows documentation (#6393) 2024-02-14 13:25:35 +00:00
Shahed NasserandGitHub 59ab66a773 docs-util: fix import issues following merge (#6390)
During the merge of #6338 the imports in the `git-manager.ts` causes an error during build which wasn't caught in the merge. This PR fixes the imports in the file.
2024-02-13 14:59:04 +00:00
Shahed NasserandGitHub d1f697c88e docs: new troubleshooting guide + cors fix (#6387)
- Fixed CORS middleware to account for routes of a single path (for example, `/custom` and not just `/custom/test`).
- Added a troubleshooting guide for admin webpack errors (see issue #6375)
2024-02-13 11:32:02 +00:00
Shahed NasserandGitHub 5ddae7ecd1 chore(docs): add empty changeset step to actions (#6377)
- Creates a script that runs the `yarn changeset --empty` command if there are file changes. This is important to not create PRs of just empty changesets if there are no file changes.
- Run script in all docs-generation PRs
- Fix to condition in `generate-docblock` action
2024-02-13 08:58:48 +00:00
Shahed NasserandGitHub 374a3f4dab docs-util: support generating OAS in docblock generator (#6338)
## What

This PR adds support for generating OAS in the docblock generator tool.

## How

As OAS are generated in a different manner/location than regular TSDocs, it requires a new type of generator within the tool. As such, the existing docblock generator now only handles files that aren't under the `packages/medusa/src/api` and `packages/medusa/src/api-v2` directories. The new generator handles files under these directories. However, it only considers a node to be an API route if it's a function having two parameters of types `MedusaRequest` and `MedusaResponse` respectively. So, only new API Routes are considered.

The new generator runs the same way as the existing docblock generator with the same method. The generators will detect whether they can run on the file or not and the docblocks/oas are generated based on that. I've also added a `--type` option to the CLI commands of the docblock generator tool to further filter and choose which generator to use.

When the OAS generator finds an API route, it will generate its OAS under the `docs-util/oas-output/operations` directory in a TypeScript file. I chose to generate in TS files rather than YAML files to maintain the functionality of `medusa-oas` without major changes.

Schemas detected in the OAS operation, such as the request and response schemas, are generated as OAS schemas under the `docs-util/oas-output/schemas` directory and referenced in operations and other resources.

The OAS generator also handles updating OAS. When you run the same command on a file/directory and an API route already has OAS associated with it, its information and associated schemas are updated instead of generating new schemas/operations. However, summaries and descriptions aren't updated unless they're not available or their values are the default value SUMMARY.

## API Route Handling

### Request and Response Types

The tool extracts the type of request/response schemas from the type arguments passed to the `MedusaRequest` and `MedusaResponse` respectively. For example:

```ts
export const POST = async (
  req: MedusaRequest<{
    id: string
  }>,
  res: MedusaResponse<ResponseType>
) => {
  // ...
}
```

If these types aren't provided, the request/response is considered empty.

### Path Parameters

Path parameters are extracted from the file's path name. For example, for `packages/medusa/src/api-v2/admin/campaigns/[id]/route.ts` the `id` path parameter is extracted.

### Query Parameters

The tool extracts the query parameters of an API route based on the type of `request.validatedQuery`. Once we narrow down how we're typing query parameters, we can revisit this implementation.

## Changes to Medusa Oas CLI

I added a `--v2` option to the Medusa OAS CLI to support loading OAS from `docs-util/oas-output` directory rather than the `medusa` package. This will output the OAS in `www/apps/api-reference/specs`, wiping out old OAS. This is only helpful for testing purposes to check how the new OAS looks like in the API reference. It also allows us to slowly start adapting the new OAS.

## Other Notes and Changes

- I've added a GitHub action that creates a PR for generated OAS when Version Packages is merged (similar to regular TSDocs). However, this will only generate the OAS in the `docs-util/oas-output` directory and will not affect the existing OAS in the API reference. Once we're ready to include it those OAS, we can talk about next steps.
- I've moved the base YAML from the `medusa` package to the `docs-util/oas-output/base` directory and changed the `medusa-oas` tool to load them from there.
- I added a `clean:oas` command to the docblock generator CLI tool that removes unused OAS operations, schemas, and tags from `docs-util/oas-output`. The tool also supports updating OAS operations and their associated schemas. However, I didn't add a specific mechanism to update schemas on their own as that's a bit tricky and would require the help of typedoc. I believe with the process of running the tool on the `api-v2` directory whenever there's a new release should be enough to update associated schemas, but if we find that not enough, we can revisit updating schemas individually.
- Because of the `clean:oas` command which makes changes to tags (removing the existing ones, more details on this one later), I've added new base YAML under `docs-util/oas-output/base-v2`. This is used by the tool when generating/cleaning OAS, and the Medusa OAS CLI when the `--v2` option is used.

## Testing

### Prerequisites

To test with request/response types, I recommend minimally modifying `packages/medusa/src/types/routing.ts` to allow type arguments of `MedusaRequest` and `MedusaResponse`:

```ts
import type { NextFunction, Request, Response } from "express"

import type { Customer, User } from "../models"
import type { MedusaContainer } from "./global"

export interface MedusaRequest<T = unknown> extends Request {
  user?: (User | Customer) & { customer_id?: string; userId?: string }
  scope: MedusaContainer
}

export type MedusaResponse<T = unknown> = Response

export type MedusaNextFunction = NextFunction

export type MedusaRequestHandler = (
  req: MedusaRequest,
  res: MedusaResponse,
  next: MedusaNextFunction
) => Promise<void> | void
```

You can then add type arguments to the routes in `packages/medusa/src/api-v2/admin/campaigns/[id]/route.ts`. For example:

```ts
import {
  deleteCampaignsWorkflow,
  updateCampaignsWorkflow,
} from "@medusajs/core-flows"
import { ModuleRegistrationName } from "@medusajs/modules-sdk"
import { CampaignDTO, IPromotionModuleService } from "@medusajs/types"
import { MedusaRequest, MedusaResponse } from "../../../../types/routing"

interface ResponseType {
  campaign: CampaignDTO
}

export const GET = async (
  req: MedusaRequest,
  res: MedusaResponse<ResponseType>
) => {
  const promotionModuleService: IPromotionModuleService = req.scope.resolve(
    ModuleRegistrationName.PROMOTION
  )
  const campaign = await promotionModuleService.retrieveCampaign(
    req.params.id,
    {
      select: req.retrieveConfig.select,
      relations: req.retrieveConfig.relations,
    }
  )
  res.status(200).json({ campaign })
}

export const POST = async (
  req: MedusaRequest<{
    id: string
  }>,
  res: MedusaResponse<ResponseType>
) => {
  const updateCampaigns = updateCampaignsWorkflow(req.scope)
  const campaignsData = [
    {
      id: req.params.id,
      ...(req.validatedBody || {}),
    },
  ]
  const { result, errors } = await updateCampaigns.run({
    input: { campaignsData },
    throwOnError: false,
  })
  if (Array.isArray(errors) && errors[0]) {
    throw errors[0].error
  }
  res.status(200).json({ campaign: result[0] })
}

export const DELETE = async (
  req: MedusaRequest,
  res: MedusaResponse<{
    id: string
    object: string
    deleted: boolean
  }>
) => {
  const id = req.params.id
  const manager = req.scope.resolve("manager")
  const deleteCampaigns = deleteCampaignsWorkflow(req.scope)
  const { errors } = await deleteCampaigns.run({
    input: { ids: [id] },
    context: { manager },
    throwOnError: false,
  })
  if (Array.isArray(errors) && errors[0]) {
    throw errors[0].error
  }
  res.status(200).json({
    id,
    object: "campaign",
    deleted: true,
  })
}
```

### Generate OAS

- Install dependencies in the `docs-util` directory
- Run the following command in the `docs-util/packages/docblock-generator` directory:

```bash
yarn dev run "../../../packages/medusa/src/api-v2/admin/campaigns/[id]/route.ts"
```

This will generate the OAS operation and schemas and necessary and update the base YAML to include the new tags.

### Generate OAS with Examples

By default, the tool will only generate cURL examples for OAS operations. To generate templated JS Client and (placeholder) Medusa React examples, add the `--generate-examples` option to the command:

```bash
yarn dev run "../../../packages/medusa/src/api-v2/admin/campaigns/[id]/route.ts" --generate-examples
```

> Note: the command will update the existing OAS you generated in the previous test.

### Testing Updates

To test updating OAS, you can try updating request/response types, then running the command, and the associated OAS/schemas will be updated.

### Clean OAS

The `clean:oas` command will remove any unused operation, tags, or schemas. To test it out you can try:

- Remove an API Route => this removes its associated operation and schemas (if not referenced anywhere else).
- Remove all references to a schema => this removes the schema.
- Remove all operations in `docs-util/oas-output/operations` associated with a tag => this removes the tag from the base YAML.

```bash
yarn dev clean:oas
```

> Note: when running this command, existing tags in the base YAML (such as Products) will be removed since there are no operations using it. As it's running on the base YAML under `base-v2`, this doesn't affect base YAML used for the API reference.

### Medusa Oas CLI

- Install and build dependencies in the root of the monorepo
- Run the following command to generate reference OAS for v2 API Routes (must have generated OAS previously using the docblock generator tool):

```bash
yarn openapi:generate --v2
```

- This wipes out existing OAS in `www/apps/api-reference/specs` and replaces them with the new ones. At this point, you can view the new API routes in the API reference by running the `yarn dev` command in `www/apps/api-reference` (although not necessary for testing here).
- Run the command again without the `--v2` option:

```bash
yarn openapi:generate
```

The specs in `www/apps/api-reference/specs` are reverted back to the old routes.
2024-02-13 08:40:04 +00:00
Shahed NasserandGitHub 1593e0b192 chore: small fixes to tsdocs (#6341)
Small fixes of the TSDocs for the upcoming release
2024-02-12 16:26:27 +00:00
Shahed NasserandGitHub bc2a63782b docs: update next.js starter docs (#6378)
* docs: update next.js starter docs

* added empty changeset
2024-02-12 14:10:08 +01:00
Shahed NasserandGitHub 66e8f4e0d2 docs-util: fix release scripts (#6353)
- Fix GitHub action to run on push and check if the commit message is "chore: Release". Only then are TSDocs generated and a PR is opened.
- Add an option to pass to the `run:release` method of the docblock generator a release tag. This is helpful in cases when the GitHub action fails for any reason.
- Add scripts that checks the message of a commit.
2024-02-08 20:36:27 +00:00
Shahed NasserandGitHub 3ded2314a5 fix(medusa): fix constructor container type for abstract services (#6259) 2024-02-08 10:36:45 +01:00
Shahed NasserandGitHub 2cebadc3a8 docs: fix title of the configuration page (#6268)
Fix the title of the configurations page which is generated by typedoc
2024-01-31 13:50:34 +00:00
Shahed NasserandGitHub 8c7a031090 docs: refactoring of docblock generator tool (#6261)
small refactoring of the docblock generator tool that moves all git operations and requests into the `GitManager`
2024-01-30 17:01:54 +00:00
Shahed NasserGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
96629f1916 docs: change process for generating docblocks through actions (#6237)
This PR changes the original process of generating docblocks through actions. The process now is:

1. When a PR is merged for the branch `changeset-release/develop`, the docblock generator tool us used to generate docblocks for the changed files. The changed files are determined by retrieving all comments since the last release and the files in each of those commits.
2. If there are changes after using the docblock generator tool, a PR is opened in the branch `chore/generate-tsdocs`.
3. Once the `chore/generate-tsdocs` is merged, it triggers an action that generates the references for the docs. This changes the previous behaviour of generating references on a new release.

Both actions (that runs the docblock generator tool and that generates references for the docs) can also be triggered manually.

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-01-29 08:05:14 +00:00
Shahed NasserandGitHub b78ffedafb docs: add a section on custom templates in SendGrid guide (#6215) 2024-01-25 16:47:08 +01:00
Shahed NasserandGitHub e84847be36 feat(medusa-oas-cli): updated redocly-cli to v1.7 (#6211)
## What

Updates `@redocly/cli` to v1.7. This resolves the bug of TypeScript and tsx code samples in the OAS being generated as undefined files (see files under `www/apps/api-reference/specs/admin/code_samples/tsx` and `www/apps/api-reference/specs/store/code_samples/tsx`

I avoided re-generating OAS so that this PR doesn't have a huge diff. When the next release is out, an automated PR will be opened to update the OAS files, replacing the undefined files with `.tsx` files.

### Other Changes

- Small fixes to `medusa-oas-cli` README for clarity
2024-01-25 07:53:58 +00:00
Shahed NasserandGitHub a1b561e4a6 docs(docblock-generator): fix action Node version (#6207) 2024-01-25 08:38:15 +01:00
Shahed NasserandGitHub f29948a6a8 docs-util: created docblock-generator tool (#6096) 2024-01-24 11:13:40 +01:00
Shahed NasserandGitHub ddc0c9dfff docs: add anchor link to reference parameters (#6194)
- Added anchor links to items in parameter components
- Added sectionTitle prop in markdown theme

Note: Due to the second point, the change requires generating references to see the anchor links, which would result in a big diff in this PR. Instead, next time the references are generated for a release, this feature will available for use.
2024-01-24 08:42:55 +00:00
Shahed NasserandGitHub 75fd6b0c83 docs: improvements to deployment guides (#6183)
- Add a new deployment overview page giving a general overview of how a Medusa project is deployed
- Add a new section in all backend deployment guides related to the Medusa admin.
- Add a general deployment guide for the medusa admin.
- Add a general deployment guide for the Next.js starter
2024-01-24 08:22:50 +00:00
Shahed NasserandGitHub bc79edfa67 docs: update strapi guide (#6163)
Update the Strapi guide to use [this community plugin](https://github.com/SGFGOV/medusa-strapi-repo)

Fixes #5152 and #5030
2024-01-23 09:31:09 +00:00
Shahed NasserandGitHub 9d7ed9dbaf docs: rearrange sections in SendGrid guide (#6165)
Rearrange sections in the sendgrid plugin guide to show installation steps before templates reference.
2024-01-23 08:36:34 +00:00
Shahed NasserandGitHub 9a3326a56e docs: fix production build error (#6170)
Fix build error in production due to incorrect link
2024-01-23 08:19:25 +00:00
Shahed NasserandGitHub 4792c55226 docs: migrate guides to TSDoc references (#6100) 2024-01-22 18:38:35 +01:00
Shahed NasserandGitHub 85dad169bb chore(docs-util): change freshness check threshold (#6122) 2024-01-22 18:02:08 +01:00
Shahed NasserandGitHub 8c67e32d41 docs: improve admin documentation (#6117)
- Move the admin plugin's options to the Admin Configuration documentation.
- Add a section on how to change the backend URL for both development and production.
- Fix the troubleshooting section related to port forwarding.
- General fixes.
2024-01-22 15:48:33 +00:00
Shahed NasserandGitHub 8a8a7183b8 docs: change sidebar title for Event (#6134)
Changed sidebar title from "Event" to "Subscribers and Events"
2024-01-19 12:23:36 +00:00
Shahed NasserandGitHub 571b64cd16 docs: added link to next.js starter demo (#6108) 2024-01-17 10:31:38 +00:00