diff --git a/migrations/elasticsearch_sync.js b/migrations/elasticsearch_sync.js index 655f6e5..162fd24 100644 --- a/migrations/elasticsearch_sync.js +++ b/migrations/elasticsearch_sync.js @@ -359,6 +359,12 @@ function getRequestBody (indexName) { type: 'string', index: 'not_analyzed' }, + subCategory: { + type: 'string' + }, + metadata: { + type: 'object' + }, name: { type: 'string' }, diff --git a/src/services/ProcessorServiceProjectTemplate.js b/src/services/ProcessorServiceProjectTemplate.js index dc3330e..89eda98 100644 --- a/src/services/ProcessorServiceProjectTemplate.js +++ b/src/services/ProcessorServiceProjectTemplate.js @@ -58,6 +58,8 @@ function createSchema () { name: Joi.string().max(255).required(), key: Joi.string().max(45).required(), category: Joi.string().max(45).required(), + subCategory: Joi.string().max(45).empty(null), + metadata: Joi.object(), icon: Joi.string().max(255).required(), question: Joi.string().max(255).required(), info: Joi.string().max(255).required(), diff --git a/test/data/project.template/project.action.create.json b/test/data/project.template/project.action.create.json index aa1cfc1..42b5d8d 100644 --- a/test/data/project.template/project.action.create.json +++ b/test/data/project.template/project.action.create.json @@ -1 +1 @@ -{"topic":"project.action.create","originator":"project-api","timestamp":"2019-06-21T02:00:27.369Z","mime-type":"application/json","payload":{"resource":"project.template","createdAt":"2019-06-21T02:00:27.263Z","updatedAt":"2019-06-21T02:00:27.264Z","disabled":false,"hidden":false,"id":1,"name":"new name","key":"new key 2","category":"app","icon":"http://example.com/icon1.ico","question":"question 1","info":"info 1","aliases":["key-1","key_1"],"scope":{"scope1":"scope 1"},"phases":{"phase1":"phase 1"},"createdBy":40051333,"updatedBy":40051333,"form":null,"planConfig":null,"priceConfig":null,"deletedAt":null,"deletedBy":null}} \ No newline at end of file +{"topic":"project.action.create","originator":"project-api","timestamp":"2019-06-21T02:00:27.369Z","mime-type":"application/json","payload":{"resource":"project.template","createdAt":"2019-06-21T02:00:27.263Z","updatedAt":"2019-06-21T02:00:27.264Z","disabled":false,"hidden":false,"id":1,"name":"new name","key":"new key 2","metadata":{},"subCategory":"app","category":"app","icon":"http://example.com/icon1.ico","question":"question 1","info":"info 1","aliases":["key-1","key_1"],"scope":{"scope1":"scope 1"},"phases":{"phase1":"phase 1"},"createdBy":40051333,"updatedBy":40051333,"form":null,"planConfig":null,"priceConfig":null,"deletedAt":null,"deletedBy":null}} diff --git a/test/e2e/processor.metadata.index.test.js b/test/e2e/processor.metadata.index.test.js index ea47583..0dd714b 100644 --- a/test/e2e/processor.metadata.index.test.js +++ b/test/e2e/processor.metadata.index.test.js @@ -423,6 +423,16 @@ describe('TC Project Template Topic Tests', () => { _.keys(_.omit(projectTemplateCreatedMessage.payload, ['resource']))) }) + it('create project template add subCategory and metadata correctly', async () => { + await ProcessorService.create(projectTemplateCreatedMessage) + const data = await testHelper.getMetadataESData(metadataId) + let projectTemplate = _.find(data.projectTemplates, { id: projectTemplateId }) + expect(projectTemplate).to.have.property('subCategory') + expect(projectTemplate).to.have.property('metadata') + expect(projectTemplate.subCategory).to.eql('app') + expect(projectTemplate.metadata).to.eql({}) + }) + it('create project template message - already exists', async () => { await ProcessorService.create(projectTemplateCreatedMessage) const data = await testHelper.getMetadataESData(metadataId)