using PKISharp.WACS.Configuration;
using PKISharp.WACS.DomainObjects;
using PKISharp.WACS.Services;
using System.Threading.Tasks;
namespace PKISharp.WACS.Plugins.ValidationPlugins.Http
{
///
/// Sftp validation
///
internal class SftpOptionsFactory : HttpValidationOptionsFactory
{
public SftpOptionsFactory(IArgumentsService arguments) : base(arguments) { }
public override bool PathIsValid(string path) => path.StartsWith("sftp://");
public override string[] WebrootHint(bool allowEmpty)
{
return new[] {
"Enter an sftp path that leads to the web root of the host for sftp authentication",
" Example, sftp://domain.com:22/site/wwwroot/"
};
}
public override async Task Default(Target target)
{
return new SftpOptions(BaseDefault(target))
{
Credential = new NetworkCredentialOptions(_arguments)
};
}
public override async Task Aquire(Target target, IInputService inputService, RunLevel runLevel)
{
return new SftpOptions(await BaseAquire(target, inputService))
{
Credential = new NetworkCredentialOptions(_arguments, inputService)
};
}
}
}