Removed Firefly
This commit is contained in:
		
							parent
							
								
									744bfa8114
								
							
						
					
					
						commit
						095fcd88f4
					
				| @ -1,64 +0,0 @@ | |||||||
| namespace active_allocator.Controllers; |  | ||||||
| 
 |  | ||||||
| using AutoMapper; |  | ||||||
| using Microsoft.AspNetCore.Mvc; |  | ||||||
| using Microsoft.Extensions.Options; |  | ||||||
| using active_allocator.Models.Accounts; |  | ||||||
| using active_allocator.Services; |  | ||||||
| using active_allocator.Authorization; |  | ||||||
| using active_allocator.Helpers; |  | ||||||
| 
 |  | ||||||
| [Authorize] |  | ||||||
| [ApiController] |  | ||||||
| [Route("[controller]")]
 |  | ||||||
| public class FireFlyController : ControllerBase |  | ||||||
| { |  | ||||||
|     private IFireFlyService _fireFlyService; |  | ||||||
|     private IMapper _mapper; |  | ||||||
|     private readonly AppSettings _appSettings; |  | ||||||
| 
 |  | ||||||
|     public FireFlyController( |  | ||||||
|         IFireFlyService fireFlyService, |  | ||||||
|         IMapper mapper, |  | ||||||
|         IOptions<AppSettings> appSettings) |  | ||||||
|     { |  | ||||||
|         _fireFlyService = fireFlyService; |  | ||||||
|         _mapper = mapper; |  | ||||||
|         _appSettings = appSettings.Value; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     [HttpGet] |  | ||||||
|     public async Task<IActionResult> GetAll() |  | ||||||
|     { |  | ||||||
|         var transactions = await _fireFlyService.GetAll(); |  | ||||||
|         return Ok(transactions); |  | ||||||
|     } |  | ||||||
| /* |  | ||||||
|     [HttpGet("{id}")] |  | ||||||
|     public IActionResult GetById(int id) |  | ||||||
|     { |  | ||||||
|         var account = _accountService.GetById(id); |  | ||||||
|         return Ok(account); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     [HttpPost] |  | ||||||
|     public IActionResult Create([FromBody]AccountCreateRequest model) |  | ||||||
|     { |  | ||||||
|         _accountService.Create(model); |  | ||||||
|         return Ok(new { message = "account created" }); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     [HttpPut("{id}")] |  | ||||||
|     public IActionResult Update(int id, [FromBody]AccountUpdateRequest model) |  | ||||||
|     { |  | ||||||
|         _accountService.Update(id, model); |  | ||||||
|         return Ok(new { message = "account updated" }); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     [HttpDelete("{id}")] |  | ||||||
|     public IActionResult Delete(int id) |  | ||||||
|     { |  | ||||||
|         _accountService.Delete(id); |  | ||||||
|         return Ok(new { message = "account deleted" }); |  | ||||||
|     }*/ |  | ||||||
| } |  | ||||||
| @ -1,10 +0,0 @@ | |||||||
| namespace active_allocator.Models.FireFlyTransactions; |  | ||||||
| 
 |  | ||||||
| public class Attributes |  | ||||||
| { |  | ||||||
|     public DateTime created_at { get; set; } |  | ||||||
|     public DateTime updated_at { get; set; } |  | ||||||
|     public string user { get; set; } |  | ||||||
|     public string group_title { get; set; } |  | ||||||
|     public List<Transaction> transactions { get; set; } |  | ||||||
| } |  | ||||||
| @ -1,9 +0,0 @@ | |||||||
| namespace active_allocator.Models.FireFlyTransactions; |  | ||||||
| 
 |  | ||||||
| public class Datum |  | ||||||
| { |  | ||||||
|     public string type { get; set; } |  | ||||||
|     public string id { get; set; } |  | ||||||
|     public Attributes attributes { get; set; } |  | ||||||
|     public Links links { get; set; } |  | ||||||
| } |  | ||||||
| @ -1,14 +0,0 @@ | |||||||
| namespace active_allocator.Models.FireFlyTransactions; |  | ||||||
| 
 |  | ||||||
| using Newtonsoft.Json; |  | ||||||
| 
 |  | ||||||
| public class Links |  | ||||||
| { |  | ||||||
|     [JsonProperty("0")] |  | ||||||
|     public _0 _0 { get; set; } |  | ||||||
|     public string self { get; set; } |  | ||||||
|     public string first { get; set; } |  | ||||||
|     public string next { get; set; } |  | ||||||
|     public string prev { get; set; } |  | ||||||
|     public string last { get; set; } |  | ||||||
| } |  | ||||||
| @ -1,6 +0,0 @@ | |||||||
| namespace active_allocator.Models.FireFlyTransactions; |  | ||||||
| 
 |  | ||||||
| public class Meta |  | ||||||
| { |  | ||||||
|     public Pagination pagination { get; set; } |  | ||||||
| } |  | ||||||
| @ -1,10 +0,0 @@ | |||||||
| namespace active_allocator.Models.FireFlyTransactions; |  | ||||||
| 
 |  | ||||||
| public class Pagination |  | ||||||
| { |  | ||||||
|     public int total { get; set; } |  | ||||||
|     public int count { get; set; } |  | ||||||
|     public int per_page { get; set; } |  | ||||||
|     public int current_page { get; set; } |  | ||||||
|     public int total_pages { get; set; } |  | ||||||
| } |  | ||||||
| @ -1,10 +0,0 @@ | |||||||
| namespace active_allocator.Models.FireFlyTransactions; |  | ||||||
| 
 |  | ||||||
| // Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse); |  | ||||||
| 
 |  | ||||||
| public class Root |  | ||||||
| { |  | ||||||
|     public List<Datum> data { get; set; } |  | ||||||
|     public Meta meta { get; set; } |  | ||||||
|     public Links links { get; set; } |  | ||||||
| } |  | ||||||
| @ -1,66 +0,0 @@ | |||||||
| namespace active_allocator.Models.FireFlyTransactions; |  | ||||||
| 
 |  | ||||||
| public class Transaction |  | ||||||
| { |  | ||||||
|     public string user { get; set; } |  | ||||||
|     public string transaction_journal_id { get; set; } |  | ||||||
|     public string type { get; set; } |  | ||||||
|     public DateTime date { get; set; } |  | ||||||
|     public int? order { get; set; } |  | ||||||
|     public string currency_id { get; set; } |  | ||||||
|     public string currency_code { get; set; } |  | ||||||
|     public string currency_symbol { get; set; } |  | ||||||
|     public string currency_name { get; set; } |  | ||||||
|     public int? currency_decimal_places { get; set; } |  | ||||||
|     public string foreign_currency_id { get; set; } |  | ||||||
|     public string foreign_currency_code { get; set; } |  | ||||||
|     public string foreign_currency_symbol { get; set; } |  | ||||||
|     public int? foreign_currency_decimal_places { get; set; } |  | ||||||
|     public string amount { get; set; } |  | ||||||
|     public string foreign_amount { get; set; } |  | ||||||
|     public string description { get; set; } |  | ||||||
|     public string source_id { get; set; } |  | ||||||
|     public string source_name { get; set; } |  | ||||||
|     public string source_iban { get; set; } |  | ||||||
|     public string source_type { get; set; } |  | ||||||
|     public string destination_id { get; set; } |  | ||||||
|     public string destination_name { get; set; } |  | ||||||
|     public string destination_iban { get; set; } |  | ||||||
|     public string destination_type { get; set; } |  | ||||||
|     public string budget_id { get; set; } |  | ||||||
|     public string budget_name { get; set; } |  | ||||||
|     public string category_id { get; set; } |  | ||||||
|     public string category_name { get; set; } |  | ||||||
|     public string bill_id { get; set; } |  | ||||||
|     public string bill_name { get; set; } |  | ||||||
|     public bool reconciled { get; set; } |  | ||||||
|     public string notes { get; set; } |  | ||||||
|     public object tags { get; set; } |  | ||||||
|     public string internal_reference { get; set; } |  | ||||||
|     public string external_id { get; set; } |  | ||||||
|     public string external_url { get; set; } |  | ||||||
|     public string original_source { get; set; } |  | ||||||
|     public int? recurrence_id { get; set; } |  | ||||||
|     public int? recurrence_total { get; set; } |  | ||||||
|     public int? recurrence_count { get; set; } |  | ||||||
|     public string bunq_payment_id { get; set; } |  | ||||||
|     public string import_hash_v2 { get; set; } |  | ||||||
|     public string sepa_cc { get; set; } |  | ||||||
|     public string sepa_ct_op { get; set; } |  | ||||||
|     public string sepa_ct_id { get; set; } |  | ||||||
|     public string sepa_db { get; set; } |  | ||||||
|     public string sepa_country { get; set; } |  | ||||||
|     public string sepa_ep { get; set; } |  | ||||||
|     public string sepa_ci { get; set; } |  | ||||||
|     public string sepa_batch_id { get; set; } |  | ||||||
|     public DateTime? interest_date { get; set; } |  | ||||||
|     public DateTime? book_date { get; set; } |  | ||||||
|     public DateTime? process_date { get; set; } |  | ||||||
|     public DateTime? due_date { get; set; } |  | ||||||
|     public DateTime? payment_date { get; set; } |  | ||||||
|     public DateTime? invoice_date { get; set; } |  | ||||||
|     public double? latitude { get; set; } |  | ||||||
|     public double? longitude { get; set; } |  | ||||||
|     public int? zoom_level { get; set; } |  | ||||||
|     public bool has_attachments { get; set; } |  | ||||||
| } |  | ||||||
| @ -1,7 +0,0 @@ | |||||||
| namespace active_allocator.Models.FireFlyTransactions; |  | ||||||
| 
 |  | ||||||
| public class _0 |  | ||||||
| { |  | ||||||
|     public string rel { get; set; } |  | ||||||
|     public string uri { get; set; } |  | ||||||
| } |  | ||||||
| @ -51,7 +51,6 @@ internal class Program | |||||||
|         builder.Services.AddScoped<IJwtUtils, JwtUtils>(); |         builder.Services.AddScoped<IJwtUtils, JwtUtils>(); | ||||||
|         builder.Services.AddScoped<IAccountService, AccountService>(); |         builder.Services.AddScoped<IAccountService, AccountService>(); | ||||||
|         builder.Services.AddScoped<ICurrencyTypeService, CurrencyTypeService>(); |         builder.Services.AddScoped<ICurrencyTypeService, CurrencyTypeService>(); | ||||||
|         builder.Services.AddScoped<IFireFlyService, FireFlyService>(); |  | ||||||
|         builder.Services.AddScoped<ITransactionService, TransactionService>(); |         builder.Services.AddScoped<ITransactionService, TransactionService>(); | ||||||
| 
 | 
 | ||||||
|         var app = builder.Build(); |         var app = builder.Build(); | ||||||
|  | |||||||
| @ -1,139 +0,0 @@ | |||||||
| namespace active_allocator.Services; |  | ||||||
| 
 |  | ||||||
| using AutoMapper; |  | ||||||
| using BCrypt.Net; |  | ||||||
| using active_allocator.Entities; |  | ||||||
| using active_allocator.Helpers; |  | ||||||
| using System.Collections; |  | ||||||
| using System.Collections.Generic; |  | ||||||
| using System.Linq; |  | ||||||
| using System; |  | ||||||
| using System.Net.Http; |  | ||||||
| using System.Net.Http.Headers; |  | ||||||
| using Newtonsoft.Json; |  | ||||||
| using Internal; |  | ||||||
| using active_allocator.Models.FireFlyTransactions; |  | ||||||
| 
 |  | ||||||
| public interface IFireFlyService |  | ||||||
| { |  | ||||||
|     Task<IEnumerable<Datum>> GetAll();/* |  | ||||||
|     Account GetById(int id); |  | ||||||
|     void Create(AccountCreateRequest model); |  | ||||||
|     void Update(int id, AccountUpdateRequest model); |  | ||||||
|     void Delete(int id);*/ |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| public class FireFlyService : IFireFlyService |  | ||||||
| { |  | ||||||
|     private DataContext _context; |  | ||||||
|     private readonly IMapper _mapper; |  | ||||||
|     private string baseUrl = "http://10.0.10.21:8080/api/v1/"; |  | ||||||
|     private string bearerToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxIiwianRpIjoiODc3ZTVlNzYyMDBiMTJiMDk2ZTQ5NjM2NWQyY2EwZjk5MmVjMzZkNGVjNmVjYjUzYTk4YzZjZTg2Y2I5N2JhMjNjODZjMDNlMDJiNDk3OWYiLCJpYXQiOjE2ODQ4NTgwODYuNjk0OTY4LCJuYmYiOjE2ODQ4NTgwODYuNjk0OTcxLCJleHAiOjE3MTY0ODA0ODYuNjI1MTA3LCJzdWIiOiIxIiwic2NvcGVzIjpbXX0.QbKdlv8h0Wqz-zd_hinX288SUWgiyEqDijHmO-6-JN2YN79GungzCddR169mjp9G-AIUykhQ3tOYKiQWSnreOLXZoWJDs6RX6MxqTZIvIFx-Fjt_5qaFt8D6pqm-LVs0j-c0xlW1BvGoZy-tHNnNbaH15vWuLN4sxsekbsfdcIq1JKsR5pYlI59SUdQzkISFjDCKqJaSCQM_lPAaYv9EEmf54yOy8hGHLQHdJmPyv-ngCar0KB5DKMimAof40FuQVMvYUueWxSej-NYp26ZXMRlRAU3A7qL2qVZA6R-Hh9wKkO8evyCrRoh3cQB1XaPMpJMN6E7m_7tsxHnOUNZ2fj0vW7LR4QKbgePhhpW6aXIrkH1_FkeMZn2MNrwoo1FuhEd3ij73K0-rbkikrKhW0G2hyqh0Lvf1HtU0kzWmOCNV9oqjHLm8fPAkcB1g8ngPcoc5ZdcEe1MF9ngJqwNvdQgqIsYr3SmWoY2G2ZVa7Fr3hn7-4D91DV5Pk_R52IfCPWqUvyPIoZfM6vGKuv4F9aGzcTotU69IJUr0-k780elzm1k7K2otYmskJe_xa4sW7E2-OYuFqD2TMBVp6j3rB6ZR5LCGZP9jETJsFis23JSzZpe0XAFf6SVi8BBOOoJxqyefZr-gdOdrZ6_5ffVKmVUbXzXQMEIC-GDz-2Vkbrs"; |  | ||||||
| 
 |  | ||||||
|     public FireFlyService( |  | ||||||
|         DataContext context, |  | ||||||
|         IMapper mapper) |  | ||||||
|     { |  | ||||||
|         _context = context; |  | ||||||
|         _mapper = mapper; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public async Task<IEnumerable<Datum>> GetAll() |  | ||||||
|     { |  | ||||||
|         string endpointUrl = "transactions?page="; |  | ||||||
|         int totalPages = 1; |  | ||||||
|         List<Datum> transactions = new List<Datum>(); |  | ||||||
| 
 |  | ||||||
|         using (var httpClient = new HttpClient()) |  | ||||||
|         { |  | ||||||
|             httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", bearerToken); |  | ||||||
| 
 |  | ||||||
|             for (int i = 1; i <= totalPages; i++) |  | ||||||
|             { |  | ||||||
|                 using (var response = await httpClient.GetAsync(baseUrl + endpointUrl + i.ToString())) |  | ||||||
|                 { |  | ||||||
|                     string apiResponse = await response.Content.ReadAsStringAsync(); |  | ||||||
|                     Root payload = JsonConvert.DeserializeObject<Root>(apiResponse); |  | ||||||
| 
 |  | ||||||
|                     if (payload?.meta?.pagination != null) |  | ||||||
|                         totalPages = payload.meta.pagination.total_pages; |  | ||||||
| 
 |  | ||||||
|                     transactions.AddRange(payload.data); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         return transactions; |  | ||||||
|     } |  | ||||||
| /* |  | ||||||
|     public Account GetById(int id) |  | ||||||
|     { |  | ||||||
|         return getAccount(id); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public void Create(AccountCreateRequest model) |  | ||||||
|     { |  | ||||||
|         // Check that account with same name or same external number doesn't exist |  | ||||||
|         IEnumerable<Account> accountsWithSameName = _context.Accounts.Where(a => a.Name.ToUpper() == model.Name.ToUpper()); |  | ||||||
| 
 |  | ||||||
|         if (accountsWithSameName.Count() > 0) |  | ||||||
|             throw new AppException("Account with name '" + model.Name + "' already exists"); |  | ||||||
| 
 |  | ||||||
|         if (!string.IsNullOrWhiteSpace(model.ExternalAccountNumber)) |  | ||||||
|         { |  | ||||||
|             IEnumerable<Account> matches = _context.Accounts.Where(a => a.ExternalAccountNumber == model.ExternalAccountNumber); |  | ||||||
| 
 |  | ||||||
|             if (matches.Count() > 0) |  | ||||||
|                 throw new AppException("Account with external account number '" + model.ExternalAccountNumber + "' already exists under account named '" + matches.First().Name + "'"); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         // map model to new account object |  | ||||||
|         //var account = _mapper.Map<Account>(model); |  | ||||||
|          |  | ||||||
|         Account account = new Account { |  | ||||||
|             Name = model.Name, |  | ||||||
|             OwnerId = model.Owner, |  | ||||||
|             Owner = _userService.GetById(model.Owner), |  | ||||||
|             InitialBalance = Convert.ToDecimal(model.InitialBalance), |  | ||||||
|             Balance = Convert.ToDecimal(model.InitialBalance), |  | ||||||
|             LastActivity = DateTime.UtcNow, |  | ||||||
|             CreatedOn = DateTime.UtcNow, |  | ||||||
|             CurrencyId = model.Currency, |  | ||||||
|             Currency = _currencyTypeService.GetById(model.Currency), |  | ||||||
|             ExternalAccountNumber = model.ExternalAccountNumber |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         _context.Accounts.Add(account); |  | ||||||
|         _context.SaveChanges(); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public void Update(int id, AccountUpdateRequest model) |  | ||||||
|     { |  | ||||||
|         var account = getAccount(id); |  | ||||||
| 
 |  | ||||||
|         // validate |  | ||||||
|         if (model.Name != account.Name && _context.Accounts.Any(x => x.Name == model.Name)) |  | ||||||
|             throw new AppException("Account with the name '" + model.Name + "' already exists"); |  | ||||||
| 
 |  | ||||||
|         // copy model to account and save |  | ||||||
|         _mapper.Map(model, account); |  | ||||||
|         _context.Accounts.Update(account); |  | ||||||
|         _context.SaveChanges(); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public void Delete(int id) |  | ||||||
|     { |  | ||||||
|         var account = getAccount(id); |  | ||||||
|         _context.Accounts.Remove(account); |  | ||||||
|         _context.SaveChanges(); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     // helper methods |  | ||||||
| 
 |  | ||||||
|     private Account getAccount(int id) |  | ||||||
|     { |  | ||||||
|         var account = _context.Accounts.Find(id); |  | ||||||
|         if (account == null) throw new KeyNotFoundException("Account not found"); |  | ||||||
|         return account; |  | ||||||
|     }*/ |  | ||||||
| } |  | ||||||
| @ -25,18 +25,15 @@ public class UserService : IUserService | |||||||
|     private DataContext _context; |     private DataContext _context; | ||||||
|     private IJwtUtils _jwtUtils; |     private IJwtUtils _jwtUtils; | ||||||
|     private readonly IMapper _mapper; |     private readonly IMapper _mapper; | ||||||
|     private IFireFlyService _fireFlyService; |  | ||||||
| 
 | 
 | ||||||
|     public UserService( |     public UserService( | ||||||
|         DataContext context, |         DataContext context, | ||||||
|         IMapper mapper, |         IMapper mapper, | ||||||
|         IJwtUtils jwtUtils, |         IJwtUtils jwtUtils) | ||||||
|         IFireFlyService fireFlyService) |  | ||||||
|     { |     { | ||||||
|         _context = context; |         _context = context; | ||||||
|         _mapper = mapper; |         _mapper = mapper; | ||||||
|         _jwtUtils = jwtUtils; |         _jwtUtils = jwtUtils; | ||||||
|         _fireFlyService = fireFlyService; |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public AuthenticateResponse Authenticate(AuthenticateRequest model) |     public AuthenticateResponse Authenticate(AuthenticateRequest model) | ||||||
| @ -76,18 +73,6 @@ public class UserService : IUserService | |||||||
| 
 | 
 | ||||||
|     public IEnumerable<User> GetAll() |     public IEnumerable<User> GetAll() | ||||||
|     { |     { | ||||||
|         /*foreach (Models.FireFlyTransactions.Datum item in _fireFlyService.GetAll()) |  | ||||||
|         { |  | ||||||
|             Console.WriteLine($"Id: {item.id}"); |  | ||||||
| 
 |  | ||||||
|             foreach (Models.FireFlyTransactions.Transaction tr in item.attributes.transactions) |  | ||||||
|             { |  | ||||||
|                 Console.WriteLine($"\t{Convert.ToDecimal(tr.amount)} Description: {tr.description}"); |  | ||||||
|             } |  | ||||||
| 
 |  | ||||||
|             Console.WriteLine(""); |  | ||||||
|         } |  | ||||||
| */ |  | ||||||
|         return _context.Users; |         return _context.Users; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user