< Summary

Information
Class: Api.Files.FileProviders.FileProviderFactory
Assembly: Api
File(s): /home/runner/work/ProjectRead.ing/ProjectRead.ing/Api/Files/FileProviders/FileProviderFactory.cs
Line coverage
84%
Covered lines: 11
Uncovered lines: 2
Coverable lines: 13
Total lines: 33
Line coverage: 84.6%
Branch coverage
50%
Covered branches: 3
Total branches: 6
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
New()50%6684.62%

File(s)

/home/runner/work/ProjectRead.ing/ProjectRead.ing/Api/Files/FileProviders/FileProviderFactory.cs

#LineLine coverage
 1// SPDX-FileCopyrightText: 2026 Alper Çelik <[email protected]>
 2//
 3// SPDX-License-Identifier: AGPL-3.0-or-later
 4
 5using System.Text.Json;
 6
 7namespace Api.Files.FileProviders;
 8
 9public class FileProviderFactory
 10{
 11    public async Task<IFileProvider?> New(
 12        IServiceProvider services,
 13        FileProviderId id,
 14        JsonDocument? providerConfig,
 15        List<byte[]>? encryptedSecrets
 16    )
 117    {
 118        var config = services.GetService<IConfiguration>();
 19
 120        return id switch
 121        {
 122            FileProviderId.LocalFsProvider =>
 123                providerConfig?.TryDeserialize<LocalFSFileProviderConfig>() switch
 124                {
 125                    LocalFSFileProviderConfig fsCfg => new LocalFSFileProvider(fsCfg),
 026                    _ => null,
 127                },
 028            _ => null,
 129        };
 130    }
 31
 32    // public Task<IFileProvider> New(IServiceProvider services,FileKind kind)
 33}

Methods/Properties

New()