Skip to content

Commit

Permalink
refactor: Create private method called StartFileLoading (#180)
Browse files Browse the repository at this point in the history
* Remove the private method "CheckIfEnvFileNotExistsAndIsNotOptional"
* Remove the private method "SetConfigurationEnvFile"
  • Loading branch information
MrDave1999 authored Jun 28, 2024
1 parent 69beb36 commit 266765d
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 59 deletions.
84 changes: 35 additions & 49 deletions src/Loader/EnvLoader.HelperMethods.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,50 +9,20 @@ namespace DotEnv.Core;
// This class defines the helper private methods.
public partial class EnvLoader
{
/// <summary>
/// Checks if the .env file does not exist and is not optional.
/// </summary>
/// <param name="envFile">The instance representing the .env file.</param>
/// <exception cref="ArgumentNullException"><c>envFile</c> is <c>null</c>.</exception>
private void CheckIfEnvFileNotExistsAndIsNotOptional(EnvFile envFile)
private void StartFileLoading(EnvFile envFile)
{
ThrowHelper.ThrowIfNull(envFile, nameof(envFile));
if (!envFile.Exists && !envFile.Optional)
_validationResult.Add(errorMsg: string.Format(FileNotFoundMessage, envFile.Path));
}

/// <summary>
/// Throws an exception if there are errors.
/// </summary>
/// <exception cref="ParserException"></exception>
/// <exception cref="FileNotFoundException"></exception>
private void ThrowExceptionIfErrorsExist()
{
_parser.ThrowParserExceptionIfErrorsExist();
if (_validationResult.HasError())
{
if (_configuration.ThrowFileNotFoundException)
throw new FileNotFoundException(message: _validationResult.ErrorMessages);
if (!Path.HasExtension(envFile.Path))
envFile.Path = Path.Combine(envFile.Path, _configuration.DefaultEnvFileName);

CombineValidationResults();
}
}
envFile.Encoding ??= _configuration.Encoding;
envFile.Optional = envFile.Optional ? envFile.Optional : _configuration.Optional;
envFile.Path = Path.Combine(_configuration.BasePath, envFile.Path);
envFile.Exists = ReadAndParse(envFile);

/// <summary>
/// Combines the validation result of the loader with the parser.
/// </summary>
private void CombineValidationResults()
{
if (_parser.ValidationResult.HasError())
_parser.ValidationResult.AddRange(errorMessages: _validationResult);
if (!envFile.Exists && !envFile.Optional)
_validationResult.Add(errorMsg: string.Format(FileNotFoundMessage, envFile.Path));
}

/// <summary>
/// Gets an instance of validation result.
/// </summary>
private EnvValidationResult GetInstanceOfValidationResult()
=> _parser.ValidationResult.HasError() ? _parser.ValidationResult : _validationResult;

/// <summary>
/// Reads the contents of a .env file and invokes the parser.
/// </summary>
Expand Down Expand Up @@ -116,21 +86,37 @@ private Result<string> GetEnvFilePath(string envFileName)
}

/// <summary>
/// Sets the configuration of a .env file.
/// Throws an exception if there are errors.
/// </summary>
/// <param name="envFile">The instance representing the .env file.</param>
/// <exception cref="ArgumentNullException"><c>envFile</c> is <c>null</c>.</exception>
private void SetConfigurationEnvFile(EnvFile envFile)
/// <exception cref="ParserException"></exception>
/// <exception cref="FileNotFoundException"></exception>
private void ThrowExceptionIfErrorsExist()
{
ThrowHelper.ThrowIfNull(envFile, nameof(envFile));
if (!Path.HasExtension(envFile.Path))
envFile.Path = Path.Combine(envFile.Path, _configuration.DefaultEnvFileName);
_parser.ThrowParserExceptionIfErrorsExist();
if (_validationResult.HasError())
{
if (_configuration.ThrowFileNotFoundException)
throw new FileNotFoundException(message: _validationResult.ErrorMessages);

envFile.Encoding ??= _configuration.Encoding;
envFile.Optional = envFile.Optional ? envFile.Optional : _configuration.Optional;
envFile.Path = Path.Combine(_configuration.BasePath, envFile.Path);
CombineValidationResults();
}
}

/// <summary>
/// Combines the validation result of the loader with the parser.
/// </summary>
private void CombineValidationResults()
{
if (_parser.ValidationResult.HasError())
_parser.ValidationResult.AddRange(errorMessages: _validationResult);
}

/// <summary>
/// Gets an instance of validation result.
/// </summary>
private EnvValidationResult GetInstanceOfValidationResult()
=> _parser.ValidationResult.HasError() ? _parser.ValidationResult : _validationResult;

/// <summary>
/// Adds optional .env files to a collection.
/// </summary>
Expand Down
12 changes: 2 additions & 10 deletions src/Loader/EnvLoader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,7 @@ public IEnvironmentVariablesProvider Load(out EnvValidationResult result)
}

foreach (EnvFile envFile in _configuration.EnvFiles)
{
SetConfigurationEnvFile(envFile);
envFile.Exists = ReadAndParse(envFile);
CheckIfEnvFileNotExistsAndIsNotOptional(envFile);
}
StartFileLoading(envFile);

ThrowExceptionIfErrorsExist();
result = GetInstanceOfValidationResult();
Expand Down Expand Up @@ -77,11 +73,7 @@ public IEnvironmentVariablesProvider LoadEnv(out EnvValidationResult result)
envFiles.AddRange(copyEnvFiles);

foreach (EnvFile envFile in _configuration.EnvFiles)
{
SetConfigurationEnvFile(envFile);
envFile.Exists = ReadAndParse(envFile);
CheckIfEnvFileNotExistsAndIsNotOptional(envFile);
}
StartFileLoading(envFile);

if (environment is null)
{
Expand Down

0 comments on commit 266765d

Please sign in to comment.