using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Milimoe.FunGame.WebAPI.Constant; using Milimoe.FunGame.Core.Api.Transmittal; using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Library.Common.Addon; namespace Milimoe.FunGame.WebAPI { public class MilimoeWebAPI : WebAPIPlugin { public override string Name => Constants.WebAPI; public override string Description => Constants.Description; public override string Version => Constants.Version; public override string Author => Constants.Author; public override void ProcessInput(string input) { try { if (input.Trim() != "") { Controller.WriteLine("Console Reply"); } } catch (Exception e) { Controller.Error(e); } } public override void AfterLoad(WebAPIPluginLoader loader, params object[] objs) { Statics.RunningPlugin ??= this; Statics.WebAPIPluginLoader ??= loader; Controller.NewSQLHelper(); Controller.NewMailSender(); if (objs.Length > 0 && objs[0] is WebApplicationBuilder builder) { builder.Services.AddTransient(provider => { SQLHelper? sql = Factory.OpenFactory.GetSQLHelper(); if (sql != null) return sql; throw new SQLServiceException(); }); builder.Services.AddTransient(); } WebAPIAuthenticator.WebAPICustomBearerTokenAuthenticator += CustomBearerTokenAuthenticator; } private string CustomBearerTokenAuthenticator(string token) { if (Configs.TokenList.Contains(token)) { return "APIUser"; } return ""; } } }