Newsbot.Collector/Newsbot.Collector.Api/Controllers/v1/CodeProjectController.cs

40 lines
1.3 KiB
C#

using Hangfire;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using Newsbot.Collector.Api.Domain.Consts;
using Newsbot.Collector.Domain.Models.Config;
using Newsbot.Collector.Services.Jobs;
namespace Newsbot.Collector.Api.Controllers.v1;
[ApiController]
[Route("api/v1/codeprojects")]
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class CodeProjectController
{
private readonly ConfigSectionConnectionStrings _connectionStrings;
private readonly ILogger<CodeProjectController> _logger;
public CodeProjectController(ILogger<CodeProjectController> logger,
IOptions<ConfigSectionConnectionStrings> settings)
{
_logger = logger;
_connectionStrings = settings.Value;
}
[HttpPost("check")]
[Authorize(Roles = Authorization.AdministratorsRole)]
public ActionResult PullNow()
{
BackgroundJob.Enqueue<CodeProjectWatcherJob>(x => x.InitAndExecute(new CodeProjectWatcherJobOptions
{
ConnectionStrings = _connectionStrings,
FeaturePullReleases = true,
FeaturePullCommits = true
}));
return new AcceptedResult();
}
}