Skip to content

Refactor ProductTemplates to use Form instead of template property #288

@maxceem

Description

@maxceem

We already refactored ProjectTemplate model to keep form templates inside Form model.
We want to do the same for ProductTemplate model.

  1. Make property ProductTemplate.template optional.
  2. Add property ProductTemplate.form which will refer a particular form version same like ProjectTemplate: { key: String, version: Number }
  3. Create a DB migration script for changes in ProductTemplate model inside /migrations folder
  4. Update /projects/metadata?includeAllRefered when we define includeAllRefered param it should also return forms which are referred in ProductTemplates.
  5. Create a migration script similar to https://github.com/topcoder-platform/tc-project-service/blob/dev/src/routes/projectTemplates/upgrade.js which we can run by calling POST /v4/projects/metadata/productTemplate/:templateId(\\d+)/upgrade.
    The migration script would look like this:
    • if Form is not specified: create a new Form and copy JSON from ProductTemplate.template to Form.config
    • set ProductTemplate.form: { key: Form.key, version: Form.version }
    • set ProductTemplate.template to null
  6. Update all unit tests, swagger and postman files according to new changes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions