Browse Source

Generate guid in script.

pull/808/head
Sebastian 4 years ago
parent
commit
7af7db60b6
  1. 20
      backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/Extensions/StringJintExtension.cs
  2. 5
      backend/src/Squidex.Infrastructure/RandomHash.cs
  3. 33
      backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/Scripting/JintScriptEngineHelperTests.cs

20
backend/src/Squidex.Domain.Apps.Core.Operations/Scripting/Extensions/StringJintExtension.cs

@ -28,6 +28,18 @@ namespace Squidex.Domain.Apps.Core.Scripting.Extensions
}
};
private readonly Func<string, JsValue> sha512 = (text) =>
{
try
{
return text.ToSha512();
}
catch
{
return JsValue.Undefined;
}
};
private readonly Func<string, JsValue> md5 = (text) =>
{
try
@ -100,13 +112,21 @@ namespace Squidex.Domain.Apps.Core.Scripting.Extensions
}
};
private readonly Func<string> guid = () =>
{
return Guid.NewGuid().ToString();
};
public Func<string, JsValue> Html2Text => html2Text;
public void Extend(Engine engine)
{
engine.SetValue("slugify", slugify);
engine.SetValue("guid", guid);
engine.SetValue("sha256", sha256);
engine.SetValue("sha512", sha512);
engine.SetValue("md5", md5);
engine.SetValue("toCamelCase", toCamelCase);

5
backend/src/Squidex.Infrastructure/RandomHash.cs

@ -49,6 +49,11 @@ namespace Squidex.Infrastructure
return value.ToHashed(SHA256.Create());
}
public static string ToSha512(this string value)
{
return value.ToHashed(SHA512.Create());
}
public static string ToSha256(this byte[] bytes)
{
return bytes.ToHashed(SHA256.Create());

33
backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/Scripting/JintScriptEngineHelperTests.cs

@ -197,6 +197,23 @@ namespace Squidex.Domain.Apps.Core.Operations.Scripting
Assert.Equal("HelloWorld".ToSha256(), result);
}
[Fact]
public void Should_compute_sha512_hash()
{
const string script = @"
return sha512(value);
";
var vars = new ScriptVars
{
["value"] = "HelloWorld"
};
var result = sut.Execute(vars, script).ToString();
Assert.Equal("HelloWorld".ToSha512(), result);
}
[Fact]
public void Should_compute_md5_hash()
{
@ -214,6 +231,22 @@ namespace Squidex.Domain.Apps.Core.Operations.Scripting
Assert.Equal("HelloWorld".ToMD5(), result);
}
[Fact]
public void Should_compute_guid()
{
const string script = @"
return guid();
";
var vars = new ScriptVars
{
};
var result = sut.Execute(vars, script).ToString();
Assert.True(Guid.TryParse(result, out _));
}
[Fact]
public async Task Should_throw_validation_exception_if_calling_reject()
{

Loading…
Cancel
Save