mirror of
				https://github.com/Kareadita/Kavita.git
				synced 2025-11-04 03:27:05 -05:00 
			
		
		
		
	* Attempting to invalidate JWT on login (when locked out), but can't figure a way to get a JWT, since we don't store them. Just committing as I'm going to remove the middleware, this is not worth the performance and complexity. * Removed some security stuff that didn't line up. * Dropping Token Expiration down to 2 days to test during release testing.
		
			
				
	
	
		
			87 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System.IO.Abstractions;
 | 
						|
using API.Constants;
 | 
						|
using API.Data;
 | 
						|
using API.Helpers;
 | 
						|
using API.Services;
 | 
						|
using API.Services.Tasks;
 | 
						|
using API.Services.Tasks.Metadata;
 | 
						|
using API.Services.Tasks.Scanner;
 | 
						|
using API.SignalR;
 | 
						|
using API.SignalR.Presence;
 | 
						|
using Microsoft.AspNetCore.Hosting;
 | 
						|
using Microsoft.EntityFrameworkCore;
 | 
						|
using Microsoft.Extensions.Configuration;
 | 
						|
using Microsoft.Extensions.DependencyInjection;
 | 
						|
using Microsoft.Extensions.Hosting;
 | 
						|
 | 
						|
namespace API.Extensions;
 | 
						|
 | 
						|
public static class ApplicationServiceExtensions
 | 
						|
{
 | 
						|
    public static void AddApplicationServices(this IServiceCollection services, IConfiguration config, IWebHostEnvironment env)
 | 
						|
    {
 | 
						|
        services.AddAutoMapper(typeof(AutoMapperProfiles).Assembly);
 | 
						|
 | 
						|
        services.AddScoped<IUnitOfWork, UnitOfWork>();
 | 
						|
        services.AddScoped<ITokenService, TokenService>();
 | 
						|
        services.AddScoped<IFileService, FileService>();
 | 
						|
        services.AddScoped<ICacheHelper, CacheHelper>();
 | 
						|
 | 
						|
        services.AddScoped<IStatsService, StatsService>();
 | 
						|
        services.AddScoped<ITaskScheduler, TaskScheduler>();
 | 
						|
        services.AddScoped<ICacheService, CacheService>();
 | 
						|
        services.AddScoped<IArchiveService, ArchiveService>();
 | 
						|
        services.AddScoped<IBackupService, BackupService>();
 | 
						|
        services.AddScoped<ICleanupService, CleanupService>();
 | 
						|
        services.AddScoped<IBookService, BookService>();
 | 
						|
        services.AddScoped<IVersionUpdaterService, VersionUpdaterService>();
 | 
						|
        services.AddScoped<IDownloadService, DownloadService>();
 | 
						|
        services.AddScoped<IReaderService, ReaderService>();
 | 
						|
        services.AddScoped<IReadingItemService, ReadingItemService>();
 | 
						|
        services.AddScoped<IAccountService, AccountService>();
 | 
						|
        services.AddScoped<IEmailService, EmailService>();
 | 
						|
        services.AddScoped<IBookmarkService, BookmarkService>();
 | 
						|
        services.AddScoped<IThemeService, ThemeService>();
 | 
						|
        services.AddScoped<ISeriesService, SeriesService>();
 | 
						|
        services.AddScoped<IProcessSeries, ProcessSeries>();
 | 
						|
        services.AddScoped<IReadingListService, ReadingListService>();
 | 
						|
        services.AddScoped<IDeviceService, DeviceService>();
 | 
						|
        services.AddScoped<IStatisticService, StatisticService>();
 | 
						|
        services.AddScoped<IMediaErrorService, MediaErrorService>();
 | 
						|
        services.AddScoped<IMediaConversionService, MediaConversionService>();
 | 
						|
 | 
						|
        services.AddScoped<IScannerService, ScannerService>();
 | 
						|
        services.AddScoped<IMetadataService, MetadataService>();
 | 
						|
        services.AddScoped<IWordCountAnalyzerService, WordCountAnalyzerService>();
 | 
						|
        services.AddScoped<ILibraryWatcher, LibraryWatcher>();
 | 
						|
        services.AddScoped<ITachiyomiService, TachiyomiService>();
 | 
						|
        services.AddScoped<ICollectionTagService, CollectionTagService>();
 | 
						|
 | 
						|
        services.AddScoped<IFileSystem, FileSystem>();
 | 
						|
        services.AddScoped<IDirectoryService, DirectoryService>();
 | 
						|
        services.AddScoped<IEventHub, EventHub>();
 | 
						|
        services.AddScoped<IPresenceTracker, PresenceTracker>();
 | 
						|
 | 
						|
        services.AddScoped<IImageService, ImageService>();
 | 
						|
 | 
						|
        services.AddSqLite(env);
 | 
						|
        services.AddSignalR(opt => opt.EnableDetailedErrors = true);
 | 
						|
 | 
						|
        services.AddEasyCaching(options =>
 | 
						|
        {
 | 
						|
            options.UseInMemory(EasyCacheProfiles.Favicon);
 | 
						|
        });
 | 
						|
    }
 | 
						|
 | 
						|
    private static void AddSqLite(this IServiceCollection services, IHostEnvironment env)
 | 
						|
    {
 | 
						|
        services.AddDbContext<DataContext>(options =>
 | 
						|
        {
 | 
						|
            options.UseSqlite("Data source=config/kavita.db");
 | 
						|
            options.EnableDetailedErrors();
 | 
						|
 | 
						|
            options.EnableSensitiveDataLogging();
 | 
						|
        });
 | 
						|
    }
 | 
						|
}
 |