You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While getting the workflow details using the endpoint "/workflows/{id}" with response as Task<NovuResponse> is is found that the for each workflow steps for email type it should return "EmailMessageTemplate" but instead it is returning "InAppMessageTemplate".
To fix this need to change the MessageTemplateConverter class:
from
public class MessageTemplateConverter : JsonCreationConverter<IMessageTemplate>
{
protected override IMessageTemplate Create(Type objectType, JObject jObject)
{
if (jObject == null)
{
throw new ArgumentNullException(nameof(jObject));
}
var typeVal = jObject.SelectToken(nameof(IMessageTemplate.Type).ToLower());
if (typeVal is not null)
{
var isEnum = typeVal.ToString().TryParseEnumMember<StepTypeEnum>(out var typeEnum);
if (isEnum)
{
return typeEnum switch
{
StepTypeEnum.InApp => new InAppMessageTemplate(),
StepTypeEnum.Email => new InAppMessageTemplate(),
StepTypeEnum.Sms => new SmsMessageTemplate(),
StepTypeEnum.Chat => new ChatMessageTemplate(),
StepTypeEnum.Push => new PushMessageTemplate(),
StepTypeEnum.Digest => new DigestMessageTemplate(),
StepTypeEnum.Trigger => new TriggerMessageTemplate(),
StepTypeEnum.Delay => new DelayMessageTemplate(),
_ => throw new InvalidOperationException($"Unknown type {typeEnum}"),
};
}
}
return default;
}
}
it is found that the return type for Email is StepTypeEnum.Email => new InAppMessageTemplate(),
it should be StepTypeEnum.Email => new EmailMessageTemplate(),
to :
public class MessageTemplateConverter : JsonCreationConverter<IMessageTemplate>
{
protected override IMessageTemplate Create(Type objectType, JObject jObject)
{
if (jObject == null)
{
throw new ArgumentNullException(nameof(jObject));
}
// All the types have the discriminator 'type' although the actual enum is different and hence not on the interface
var typeVal = jObject.SelectToken(nameof(IMessageTemplate.Type).ToLower());
if (typeVal is not null)
{
var isEnum = typeVal.ToString().TryParseEnumMember<StepTypeEnum>(out var typeEnum);
if (isEnum)
{
return typeEnum switch
{
StepTypeEnum.InApp => new InAppMessageTemplate(),
StepTypeEnum.Email => new `EmailMessageTemplate(),
StepTypeEnum.Sms => new SmsMessageTemplate(),
StepTypeEnum.Chat => new ChatMessageTemplate(),
StepTypeEnum.Push => new PushMessageTemplate(),
StepTypeEnum.Digest => new DigestMessageTemplate(),
StepTypeEnum.Trigger => new TriggerMessageTemplate(),
StepTypeEnum.Delay => new DelayMessageTemplate(),
_ => throw new InvalidOperationException($"Unknown type {typeEnum}"),
};
}
}
return default;
}
}
The text was updated successfully, but these errors were encountered:
While getting the workflow details using the endpoint "/workflows/{id}" with response as Task<NovuResponse> is is found that the for each workflow steps for email type it should return "EmailMessageTemplate" but instead it is returning "InAppMessageTemplate".
To fix this need to change the MessageTemplateConverter class:
from
it is found that the return type for Email is StepTypeEnum.Email => new InAppMessageTemplate(),
it should be StepTypeEnum.Email => new EmailMessageTemplate(),
to :
The text was updated successfully, but these errors were encountered: