Beispiel #1
0
 public PostRecurrenceController(ILogger <PostRecurrenceController> logger, IRedditService redditService, IConfiguration config)
 {
     _logger                = logger;
     _redditService         = redditService;
     _postRecurrenceStorage = new PostRecurrenceEntity(config["ConnectionString"]);
     _redditUserStorage     = new RedditUserEntity(config["ConnectionString"]);
 }
Beispiel #2
0
        public async Task <IActionResult> Post([FromBody] OAuthDto oauth)
        {
            var accessToken = await _redditService.Authorize(oauth.Code);

            var redditIdentity = await _redditService.GetRedditIdentity();

            var redditUser = await _redditUserStorage.FindByAsync(r => r.RedditUsername == redditIdentity.RedditUsername);

            if (redditUser == null)
            {
                var redditEntity          = new RedditUserEntity(redditIdentity.RedditUsername, accessToken.AccessToken, accessToken.RefreshToken, accessToken.Scope, accessToken.TokenExpiration);
                var savedRedditUserEntity = await _redditUserStorage.CreateAsync(redditEntity);

                return(Ok(new OAuthResponseDto(savedRedditUserEntity.Id)));
            }
            else
            {
                // return stored user but update access token
                redditUser.AccessToken    = accessToken.AccessToken;
                redditUser.RefreshToken   = accessToken.RefreshToken;
                redditUser.Scope          = accessToken.Scope;
                redditUser.TokenExpiresAt = accessToken.TokenExpiration;
                await _redditUserStorage.UpdateAsync(redditUser);

                return(Ok(new OAuthResponseDto(redditUser.Id)));
            }
        }
Beispiel #3
0
 public PostJob(ILogger <PostJob> logger, IRedditService redditService, IConfiguration config)
 {
     _logger = logger;
     _logger.LogWarning($"Starting post job. App Version {new Settings().AppVersion}");
     _postRecurrenceStorage = new PostRecurrenceEntity(config["ConnectionString"]);
     _redditUserStorage     = new RedditUserEntity(config["ConnectionString"]);
     _redditService         = redditService;
     _logger.LogInformation("Starting PostJob");
 }
Beispiel #4
0
 public RedditUserController(ILogger <RedditUserController> logger, IConfiguration config)
 {
     _logger            = logger;
     _redditUserStorage = new RedditUserEntity(config["ConnectionString"]);
 }
Beispiel #5
0
 public OAuthController(ILogger <OAuthController> logger, IRedditService redditService, IConfiguration config)
 {
     _logger            = logger;
     _redditService     = redditService;
     _redditUserStorage = new RedditUserEntity(config["ConnectionString"]);
 }