Populate enum messages in nested lists/maps
This commit is contained in:
@@ -40,6 +40,7 @@ message Test {
|
|||||||
message ReferenceMessage {
|
message ReferenceMessage {
|
||||||
string test = 1;
|
string test = 1;
|
||||||
Test.NestedMessage nested_message = 2;
|
Test.NestedMessage nested_message = 2;
|
||||||
|
EnumTest enum_test = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum EnumTest {
|
enum EnumTest {
|
||||||
@@ -92,7 +93,7 @@ describe('TestService', () => {
|
|||||||
expect(mapMessage.valueConfiguration.type).toBe(MessageTypeEnum.String);
|
expect(mapMessage.valueConfiguration.type).toBe(MessageTypeEnum.String);
|
||||||
|
|
||||||
const referenceMessage = converted.values[8].configuration as ObjectMessage;
|
const referenceMessage = converted.values[8].configuration as ObjectMessage;
|
||||||
expect(referenceMessage.messageDefinition.values.length).toBe(2);
|
expect(referenceMessage.messageDefinition.values.length).toBe(3);
|
||||||
expect(referenceMessage.messageDefinition.name).toBe('ReferenceMessage');
|
expect(referenceMessage.messageDefinition.name).toBe('ReferenceMessage');
|
||||||
const nestedReferenceMessage = referenceMessage.messageDefinition.values[0];
|
const nestedReferenceMessage = referenceMessage.messageDefinition.values[0];
|
||||||
expect(nestedReferenceMessage.configuration.type).toBe(
|
expect(nestedReferenceMessage.configuration.type).toBe(
|
||||||
@@ -136,7 +137,11 @@ describe('TestService', () => {
|
|||||||
);
|
);
|
||||||
const objectListNestedMessage =
|
const objectListNestedMessage =
|
||||||
objectListMessage.subConfiguration as ObjectMessage;
|
objectListMessage.subConfiguration as ObjectMessage;
|
||||||
expect(objectListNestedMessage.messageDefinition.values.length).toBe(2);
|
expect(objectListNestedMessage.messageDefinition.values.length).toBe(3);
|
||||||
|
|
||||||
|
const enumTestMessage = objectListNestedMessage.messageDefinition.values[2]
|
||||||
|
.configuration as EnumMessage;
|
||||||
|
expect(enumTestMessage.type).toBe(MessageTypeEnum.Enum);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -93,11 +93,11 @@ export class ProtoDefinitionService {
|
|||||||
configuration = listConfiguration.subConfiguration;
|
configuration = listConfiguration.subConfiguration;
|
||||||
}
|
}
|
||||||
} else if (value.configuration.type === MessageTypeEnum.Map) {
|
} else if (value.configuration.type === MessageTypeEnum.Map) {
|
||||||
const listConfiguration = value.configuration as MapMessage;
|
const mapConfiguration = value.configuration as MapMessage;
|
||||||
if (
|
if (
|
||||||
listConfiguration.valueConfiguration.type === MessageTypeEnum.Object
|
mapConfiguration.valueConfiguration.type === MessageTypeEnum.Object
|
||||||
) {
|
) {
|
||||||
configuration = listConfiguration.valueConfiguration;
|
configuration = mapConfiguration.valueConfiguration;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (configuration) {
|
if (configuration) {
|
||||||
@@ -119,6 +119,26 @@ export class ProtoDefinitionService {
|
|||||||
value.configuration as ObjectMessage,
|
value.configuration as ObjectMessage,
|
||||||
enumMessages
|
enumMessages
|
||||||
);
|
);
|
||||||
|
} else if (value.configuration.type === MessageTypeEnum.List) {
|
||||||
|
const listConfiguration = value.configuration as ListMessage;
|
||||||
|
if (
|
||||||
|
listConfiguration.subConfiguration.type === MessageTypeEnum.Object
|
||||||
|
) {
|
||||||
|
listConfiguration.subConfiguration = this.populateEnumMessages(
|
||||||
|
listConfiguration.subConfiguration as ObjectMessage,
|
||||||
|
enumMessages
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else if (value.configuration.type === MessageTypeEnum.Map) {
|
||||||
|
const mapConfiguration = value.configuration as MapMessage;
|
||||||
|
if (
|
||||||
|
mapConfiguration.valueConfiguration.type === MessageTypeEnum.Object
|
||||||
|
) {
|
||||||
|
mapConfiguration.valueConfiguration = this.populateEnumMessages(
|
||||||
|
mapConfiguration.valueConfiguration as ObjectMessage,
|
||||||
|
enumMessages
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -159,17 +179,44 @@ export class ProtoDefinitionService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
objectMessage.messageDefinition.values =
|
objectMessage.messageDefinition.values =
|
||||||
objectMessage.messageDefinition.values.map((obj) =>
|
objectMessage.messageDefinition.values.map((obj) => {
|
||||||
obj.configuration.type === MessageTypeEnum.Object
|
if (obj.configuration.type === MessageTypeEnum.Object) {
|
||||||
? {
|
return {
|
||||||
...obj,
|
...obj,
|
||||||
configuration: this.populateEnumMessages(
|
configuration: this.populateEnumMessages(
|
||||||
obj.configuration as ObjectMessage,
|
obj.configuration as ObjectMessage,
|
||||||
enumMessages
|
enumMessages
|
||||||
),
|
),
|
||||||
|
};
|
||||||
|
} else if (obj.configuration.type === MessageTypeEnum.List) {
|
||||||
|
const listConfiguration = obj.configuration as ListMessage;
|
||||||
|
if (
|
||||||
|
listConfiguration.subConfiguration.type === MessageTypeEnum.Object
|
||||||
|
) {
|
||||||
|
return {
|
||||||
|
...obj,
|
||||||
|
subConfiguration: this.populateEnumMessages(
|
||||||
|
listConfiguration.subConfiguration as ObjectMessage,
|
||||||
|
enumMessages
|
||||||
|
),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
: obj
|
} else if (obj.configuration.type === MessageTypeEnum.Map) {
|
||||||
);
|
const mapConfiguration = obj.configuration as MapMessage;
|
||||||
|
if (
|
||||||
|
mapConfiguration.valueConfiguration.type === MessageTypeEnum.Object
|
||||||
|
) {
|
||||||
|
return {
|
||||||
|
...obj,
|
||||||
|
valueConfiguration: this.populateEnumMessages(
|
||||||
|
mapConfiguration.valueConfiguration as ObjectMessage,
|
||||||
|
enumMessages
|
||||||
|
),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
});
|
||||||
return objectMessage;
|
return objectMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ message Test {
|
|||||||
|
|
||||||
message ReferenceMessage {
|
message ReferenceMessage {
|
||||||
string test = 1;
|
string test = 1;
|
||||||
|
Test.NestedMessage nested = 2;
|
||||||
|
EnumTest enum_test = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum EnumTest {
|
enum EnumTest {
|
||||||
|
|||||||
Reference in New Issue
Block a user