diff --git a/src/BirdsiteLive.Domain/MigrationService.cs b/src/BirdsiteLive.Domain/MigrationService.cs index 844cedf..b4df0a5 100644 --- a/src/BirdsiteLive.Domain/MigrationService.cs +++ b/src/BirdsiteLive.Domain/MigrationService.cs @@ -65,13 +65,22 @@ namespace BirdsiteLive.Domain throw new Exception($"Tweet not published by @{acct}"); if (!tweet.MessageContent.Contains(code)) - throw new Exception("Tweet don't have migration code"); + { + var message = "Tweet don't have migration code"; + if (type == MigrationTypeEnum.Deletion) + message = "Tweet don't have deletion code"; + + throw new Exception(message); + } return true; } private long ExtractedTweetId(string tweetId) { + if (string.IsNullOrWhiteSpace(tweetId)) + throw new ArgumentException("No provided Tweet ID"); + long castedId; if (long.TryParse(tweetId, out castedId)) return castedId; diff --git a/src/BirdsiteLive.Twitter/Extractors/TweetExtractor.cs b/src/BirdsiteLive.Twitter/Extractors/TweetExtractor.cs index f8d29c8..e8e47fb 100644 --- a/src/BirdsiteLive.Twitter/Extractors/TweetExtractor.cs +++ b/src/BirdsiteLive.Twitter/Extractors/TweetExtractor.cs @@ -29,7 +29,7 @@ namespace BirdsiteLive.Twitter.Extractors IsThread = tweet.InReplyToUserId != null && tweet.InReplyToUserId == tweet.CreatedBy.Id, IsRetweet = tweet.IsRetweet || tweet.QuotedStatusId != null, RetweetUrl = ExtractRetweetUrl(tweet), - CreatorName = tweet.CreatedBy.Name + CreatorName = tweet.CreatedBy.UserIdentifier.ScreenName }; return extractedTweet; diff --git a/src/BirdsiteLive/Controllers/MigrationController.cs b/src/BirdsiteLive/Controllers/MigrationController.cs index 1455c07..386644a 100644 --- a/src/BirdsiteLive/Controllers/MigrationController.cs +++ b/src/BirdsiteLive/Controllers/MigrationController.cs @@ -71,12 +71,14 @@ namespace BirdsiteLive.Controllers //Verify can be migrated var twitterAccount = await _twitterUserDal.GetTwitterUserAsync(id); - if (twitterAccount.Deleted) + if (twitterAccount != null && twitterAccount.Deleted) { data.ErrorMessage = "This account has been deleted, it can't be migrated"; return View("Index", data); } - if (!string.IsNullOrWhiteSpace(twitterAccount.MovedTo) || !string.IsNullOrWhiteSpace(twitterAccount.MovedToAcct)) + if (twitterAccount != null && + (!string.IsNullOrWhiteSpace(twitterAccount.MovedTo) + || !string.IsNullOrWhiteSpace(twitterAccount.MovedToAcct))) { data.ErrorMessage = "This account has been moved already, it can't be migrated again"; return View("Index", data); @@ -118,12 +120,12 @@ namespace BirdsiteLive.Controllers [Route("/migration/delete/{id}")] public async Task MigrateDelete(string id, string tweetid) { - var migrationCode = _migrationService.GetMigrationCode(id); + var deletionCode = _migrationService.GetDeletionCode(id); var data = new MigrationData() { Acct = id, - MigrationCode = migrationCode, + MigrationCode = deletionCode, IsTweetProvided = !string.IsNullOrWhiteSpace(tweetid), @@ -132,16 +134,16 @@ namespace BirdsiteLive.Controllers //Verify can be deleted var twitterAccount = await _twitterUserDal.GetTwitterUserAsync(id); - if (twitterAccount.Deleted) + if (twitterAccount != null && twitterAccount.Deleted) { data.ErrorMessage = "This account has been deleted, it can't be deleted again"; - return View("Index", data); + return View("Delete", data); } // Start deletion try { - var isTweetValid = _migrationService.ValidateTweet(id, tweetid, MigrationTypeEnum.Migration); + var isTweetValid = _migrationService.ValidateTweet(id, tweetid, MigrationTypeEnum.Deletion); data.IsTweetValid = isTweetValid; } catch (Exception e) @@ -164,7 +166,7 @@ namespace BirdsiteLive.Controllers } } - return View("Index", data); + return View("Delete", data); } [HttpPost]