Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
be2f07c
added files for shopping cart service
kubapoke Apr 26, 2025
109be60
added necessary endpoint mocks for the shopping carts controller
kubapoke Apr 27, 2025
d138180
added mocks for the rest of necessary endpoints
kubapoke Apr 27, 2025
56e3a12
Merge branch 'develop' into feat/shopping-cart
kubapoke Apr 27, 2025
dd6041d
minor fixes
kTrzcinskii May 1, 2025
c275607
Create `PaymentGatewayService`
kTrzcinskii May 1, 2025
0ec7be2
Fix invalid url
kTrzcinskii May 1, 2025
51421d7
Add missing field
kTrzcinskii May 1, 2025
57b6293
Create health check for payment gateway connection
kTrzcinskii May 1, 2025
e5ac983
Merge pull request #103 from Resellio/feat/communication-with-payment…
staszkiet May 2, 2025
822960d
Add missing admin policies
kTrzcinskii May 2, 2025
54cb5d2
Check if ticket is assigned to the customer and fetch the ticket
staszkiet May 2, 2025
b2a6961
Implement getting tickets for resell for given event
kTrzcinskii May 2, 2025
8210f95
Fix tests
kTrzcinskii May 2, 2025
50fc333
Add tests
kTrzcinskii May 2, 2025
7ef6a91
Merge branch 'develop' into feat/shopping-cart
kubapoke May 2, 2025
687bd13
Working endpoint
staszkiet May 2, 2025
fc28f01
Add address
staszkiet May 2, 2025
330caf7
Merge pull request #105 from Resellio/feat/get-tickets-for-resell
kubapoke May 2, 2025
cc84275
Merge branch 'develop' into feat/shopping-cart
kubapoke May 2, 2025
64e5670
added the base of ShoppingCartService.cs methods (headers still requi…
kubapoke May 2, 2025
e6619a4
added acquiring cart contents (from service) and adding ticket to car…
kubapoke May 3, 2025
8a74425
Add unit tests
staszkiet May 3, 2025
6a4944c
Resolve merge conflig
staszkiet May 3, 2025
dd952ce
Fixes from review
staszkiet May 3, 2025
8ce7ff4
Dont even want to comment on it
staszkiet May 3, 2025
2bb7179
Dont want to comment on it even harder
staszkiet May 3, 2025
cd9f388
Merge pull request #104 from Resellio/feat/enable-admin-policy
kubapoke May 3, 2025
16ca7dd
Merge pull request #106 from Resellio/feat/TicketDetaild
kubapoke May 3, 2025
410b2dd
Working endpoint
staszkiet May 4, 2025
0861162
Add tests
staszkiet May 4, 2025
c37d367
Merge pull request #108 from Resellio/feat/getTickets
kTrzcinskii May 4, 2025
bc1b0c2
Create `ToObjectResult` for `Result` and `Result<T>`
kTrzcinskii May 4, 2025
c0acb7d
Simplify code using `ToObjectResult`
kTrzcinskii May 4, 2025
19e1cd4
Use more generic `ObjectResult` instead of `OkObjectResult` in tests
kTrzcinskii May 8, 2025
ef850db
Add support for missing fields in `EventFiltersDto`
kTrzcinskii May 8, 2025
066d92f
Add currency to the data returned while getting events
kTrzcinskii May 8, 2025
fb02eb5
Working feature
staszkiet May 9, 2025
715b526
tests
staszkiet May 9, 2025
f5c5d03
Merge pull request #110 from Resellio/fix/missing-event-filters
staszkiet May 9, 2025
2e53871
Merge pull request #111 from Resellio/fix/return-currency-in-get-events
staszkiet May 9, 2025
4758983
Add qr service and scannin endpoint
staszkiet May 9, 2025
943de02
Add url encoding instead of guid and add qrcode to ticketdetails
staszkiet May 9, 2025
b209d46
removed unnecessary using directive
kubapoke May 9, 2025
1a862db
Replace `Name` and `Description` with `SearchQuery`
kTrzcinskii May 10, 2025
0bbfe5b
trzcinskik comments
staszkiet May 10, 2025
10dde45
Resolve merge conflict
staszkiet May 10, 2025
bba9376
merge
staszkiet May 10, 2025
f3f2699
Merge branch 'develop' of https://github.com/Resellio/api into develop
staszkiet May 10, 2025
f177515
Merge pull request #109 from Resellio/feat/result-to-status-code
kTrzcinskii May 10, 2025
83bb44f
Merge pull request #112 from Resellio/feat/TicketFilters
staszkiet May 10, 2025
e6b9201
Merge pull request #113 from Resellio/fix/use-search-query-in-events-…
staszkiet May 10, 2025
12d579c
Add retrieving urls
staszkiet May 10, 2025
1cda709
Handle scanning used tickets
staszkiet May 10, 2025
102ff06
Add test
staszkiet May 10, 2025
5f6caee
new spacing
staszkiet May 10, 2025
c6a9a3f
Trzcinskik comments
staszkiet May 11, 2025
af70c9e
if chang
staszkiet May 11, 2025
0a9abf1
Merge pull request #114 from Resellio/feat/qr
kTrzcinskii May 11, 2025
64f3f06
Add endpoint for editing events
kTrzcinskii May 11, 2025
a0b879a
Add tests for `EventService:EditEvenAsync`
kTrzcinskii May 11, 2025
1554e2d
fix \n
kTrzcinskii May 12, 2025
08f2bbb
Update logic behind checking if dates are correct in edited event
kTrzcinskii May 12, 2025
51f54e6
Make `LastName` nullable in `AboutMeOrganizerResponseDto`
kTrzcinskii May 13, 2025
cf2fada
Add endpoint for getting unverified organizers
kTrzcinskii May 13, 2025
4a71c77
Fix already existing tests
kTrzcinskii May 13, 2025
10f2884
Add tests for `GetUnverifiedOrganizersAsync`
kTrzcinskii May 13, 2025
6c59aab
Merge branch 'develop' into feat/shopping-cart
kubapoke May 14, 2025
7f5f88a
added getting tickets from cart
kubapoke May 14, 2025
91fb526
removed NameOnTicket being necessary
kubapoke May 14, 2025
c3222df
implemented the basic version of getting tickets
kubapoke May 15, 2025
95698fe
reworked ticket buying logic to make the pipeline from frontend more …
kubapoke May 16, 2025
3edf2d6
relegated some of the ticket adding logic to the repository
kubapoke May 16, 2025
84dd97f
started updating some ticket retrieval logic
kubapoke May 16, 2025
e8bfaad
Merge pull request #120 from Resellio/feat/get-unverified-organizers
kubapoke May 18, 2025
51126b1
Merge pull request #118 from Resellio/feat/edit-event
kubapoke May 18, 2025
9781f8d
Merge branch 'develop' into feat/shopping-cart
kubapoke May 20, 2025
ab228be
small aesthetic change in TicketRepository.cs
kubapoke May 20, 2025
0f0e843
updated cart retrieval logic to return more data
kubapoke May 20, 2025
5e3b95f
added functionality for removal of tickets from the shopping cart
kubapoke May 20, 2025
e877eae
implemented getting cart due amount and part of the checkout process
kubapoke May 21, 2025
68d9662
added payment endpoint
kubapoke May 21, 2025
05da8e5
changed due amount calculations
kubapoke May 21, 2025
2338c8e
implemented adding created tickets to database
kubapoke May 22, 2025
b0703de
tickets removed from cart after purchase
kubapoke May 22, 2025
fe4cf05
added methods for manipulating ticket type counters
kubapoke May 22, 2025
c1097b3
added reserved ticket counting
kubapoke May 22, 2025
ec35bc9
fixed counting amount of reserved tickets
kubapoke May 22, 2025
98ddd74
added redis service method for retrieving keys
kubapoke May 23, 2025
bc6d27a
added background service for syncing cart counters with their actual …
kubapoke May 23, 2025
a9bc327
fixed tests to account for changed method logic
kubapoke May 23, 2025
45788f9
Logic for setting ticket state to resell
staszkiet May 24, 2025
d898aa2
Validation stuff
staszkiet May 24, 2025
8f447bd
tests
staszkiet May 24, 2025
aec86da
rever miratuons
staszkiet May 24, 2025
1bccf0c
changed ToObjectResult in Result.cs to return 200 on success instead …
kubapoke May 24, 2025
b649e81
ShoppingCartsController.cs uses ToObjectResult
kubapoke May 24, 2025
f88d487
stylistic fixes
kubapoke May 24, 2025
e1efea5
added returning currency when getting cart items
kubapoke May 24, 2025
e8e3acc
program reads shopping cart lifetime and syncing interval from appset…
kubapoke May 24, 2025
5eb6440
updated tests to account for ToObjectResult method change
kubapoke May 24, 2025
fa1dd72
Merge pull request #122 from Resellio/feat/shopping-cart
kTrzcinskii May 25, 2025
b15fcc0
resolve shopping cart merge conflict
staszkiet May 25, 2025
5b2fc9a
apply changes
staszkiet May 25, 2025
dc58c22
Merge pull request #127 from Resellio/feat/setresell
kTrzcinskii May 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public async Task GetCategories_WhenDataIsValid_ShouldReturnOk()

// Assert
var result = Assert.IsType<ActionResult<PaginatedData<GetCategoryResponseDto>>>(res);
var objectResult = Assert.IsType<OkObjectResult>(result.Result);
var objectResult = Assert.IsType<ObjectResult>(result.Result);
Assert.Equal(200, objectResult.StatusCode);
Assert.NotNull(objectResult.Value);
}
Expand Down
87 changes: 86 additions & 1 deletion TickAPI/TickAPI.Tests/Common/Results/Generic/ResultTests.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using TickAPI.Common.Results;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using TickAPI.Common.Results;
using TickAPI.Common.Results.Generic;

namespace TickAPI.Tests.Common.Results.Generic;
Expand All @@ -8,10 +10,13 @@ public class ResultTests
[Fact]
public void Success_ShouldReturnResultWithValue()
{
// Arrange
const int value = 123;

// Act
var result = Result<int>.Success(value);

// Assert
Assert.Equal(value, result.Value);
Assert.True(result.IsSuccess);
Assert.False(result.IsError);
Expand All @@ -22,11 +27,14 @@ public void Success_ShouldReturnResultWithValue()
[Fact]
public void Failure_ShouldReturnResultWithError()
{
// Arrange
const int statusCode = 500;
const string errorMsg = "example error msg";

// Act
var result = Result<int>.Failure(500, errorMsg);

// Assert
Assert.True(result.IsError);
Assert.False(result.IsSuccess);
Assert.Equal(errorMsg, result.ErrorMsg);
Expand All @@ -36,12 +44,15 @@ public void Failure_ShouldReturnResultWithError()
[Fact]
public void PropagateError_WhenResultWithErrorPassed_ShouldReturnResultWithError()
{
// Arrange
const int statusCode = 500;
const string errorMsg = "error message";
var resultWithError = Result<string>.Failure(statusCode, errorMsg);

// Act
var result = Result<int>.PropagateError(resultWithError);

// Assert
Assert.True(result.IsError);
Assert.False(result.IsSuccess);
Assert.Equal(errorMsg, result.ErrorMsg);
Expand All @@ -51,12 +62,15 @@ public void PropagateError_WhenResultWithErrorPassed_ShouldReturnResultWithError
[Fact]
public void PropagateError_WhenNonGenericResultWithErrorPassed_ShouldReturnResultWithError()
{
// Arrange
const int statusCode = 500;
const string errorMsg = "error message";
var resultWithError = Result.Failure(statusCode, errorMsg);

// Act
var result = Result<int>.PropagateError(resultWithError);

// Assert
Assert.True(result.IsError);
Assert.False(result.IsSuccess);
Assert.Equal(errorMsg, result.ErrorMsg);
Expand All @@ -66,20 +80,91 @@ public void PropagateError_WhenNonGenericResultWithErrorPassed_ShouldReturnResul
[Fact]
public void PropagateError_WhenResultWithSuccessPassed_ShouldThrowArgumentException()
{
// Arrange
var resultWithSuccess = Result<string>.Success("abc");

// Act
var act = () => Result<int>.PropagateError(resultWithSuccess);

// Assert
Assert.Throws<ArgumentException>(act);
}

[Fact]
public void PropagateError_WhenNonGenericResultWithSuccessPassed_ShouldThrowArgumentException()
{
// Arrange
var resultWithSuccess = Result.Success();

// Act
var act = () => Result<int>.PropagateError(resultWithSuccess);

// Assert
Assert.Throws<ArgumentException>(act);
}

[Fact]
public void ToObjectResult_WhenGenericResultIsError_ShouldReturnObjectResultWithErrorDetails()
{
// Arrange
const int statusCode = 404;
const string errorMsg = "Not found";
var result = Result<int>.Failure(statusCode, errorMsg);

// Act
var objectResult = result.ToObjectResult();

// Assert
Assert.IsType<ObjectResult>(objectResult);
Assert.Equal(statusCode, objectResult.StatusCode);
Assert.Equal(errorMsg, objectResult.Value);
}

[Fact]
public void ToObjectResult_WhenGenericResultIsSuccess_ShouldReturnObjectResultWithDefaultSuccessCode()
{
// Arrange
const int value = 42;
var result = Result<int>.Success(value);

// Act
var objectResult = result.ToObjectResult();

// Assert
Assert.IsType<ObjectResult>(objectResult);
Assert.Equal(StatusCodes.Status200OK, objectResult.StatusCode);
Assert.Equal(value, objectResult.Value);
}

[Fact]
public void ToObjectResult_WhenGenericResultIsSuccessWithCustomStatusCode_ShouldReturnObjectResultWithSpecifiedCode()
{
// Arrange
const string value = "Success data";
var result = Result<string>.Success(value);
const int customSuccessCode = StatusCodes.Status201Created;

// Act
var objectResult = result.ToObjectResult(customSuccessCode);

// Assert
Assert.IsType<ObjectResult>(objectResult);
Assert.Equal(customSuccessCode, objectResult.StatusCode);
Assert.Equal(value, objectResult.Value);
}

[Fact]
public void ToObjectResult_WhenGenericResultWithNullValueIsSuccess_ShouldReturnObjectResultWithNullValue()
{
// Arrange
var result = Result<string>.Success(null);

// Act
var objectResult = result.ToObjectResult();

// Assert
Assert.IsType<ObjectResult>(objectResult);
Assert.Equal(StatusCodes.Status200OK, objectResult.StatusCode);
Assert.Null(objectResult.Value);
}
}
88 changes: 87 additions & 1 deletion TickAPI/TickAPI.Tests/Common/Results/ResultTests.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using TickAPI.Common.Results;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using TickAPI.Common.Results;
using TickAPI.Common.Results.Generic;

namespace TickAPI.Tests.Common.Results;
Expand All @@ -8,8 +10,10 @@ public class ResultTests
[Fact]
public void Success_ShouldReturnResultWithSuccess()
{
// Act
var result = Result.Success();

// Assert
Assert.True(result.IsSuccess);
Assert.False(result.IsError);
Assert.Equal("", result.ErrorMsg);
Expand All @@ -19,11 +23,29 @@ public void Success_ShouldReturnResultWithSuccess()
[Fact]
public void Failure_ShouldReturnResultWithError()
{
// Arrange
const int statusCode = 500;
const string errorMsg = "example error msg";

// Act
var result = Result.Failure(500, errorMsg);

// Assert
Assert.True(result.IsError);
Assert.False(result.IsSuccess);
Assert.Equal(errorMsg, result.ErrorMsg);
Assert.Equal(statusCode, result.StatusCode);
}

[Fact]
public void PropagateError_WhenResultWithErrorPassed_ShouldReturnResultWithError()
{
const int statusCode = 500;
const string errorMsg = "error message";
var resultWithError = Result.Failure(statusCode, errorMsg);

var result = Result.PropagateError(resultWithError);

Assert.True(result.IsError);
Assert.False(result.IsSuccess);
Assert.Equal(errorMsg, result.ErrorMsg);
Expand All @@ -33,25 +55,89 @@ public void Failure_ShouldReturnResultWithError()
[Fact]
public void PropagateError_WhenGenericResultWithErrorPassed_ShouldReturnResultWithError()
{
// Arrange
const int statusCode = 500;
const string errorMsg = "error message";
var resultWithError = Result<int>.Failure(statusCode, errorMsg);

// Act
var result = Result.PropagateError(resultWithError);

// Assert
Assert.True(result.IsError);
Assert.False(result.IsSuccess);
Assert.Equal(errorMsg, result.ErrorMsg);
Assert.Equal(statusCode, result.StatusCode);
}

[Fact]
public void PropagateError_WhenResultWithSuccessPassed_ShouldThrowArgumentException()
{
var resultWithSuccess = Result.Success();

var act = () => Result.PropagateError(resultWithSuccess);

Assert.Throws<ArgumentException>(act);
}

[Fact]
public void PropagateError_WhenGenericResultWithSuccessPassed_ShouldThrowArgumentException()
{
// Arrange
var resultWithSuccess = Result<int>.Success(123);

// Act
var act = () => Result<int>.PropagateError(resultWithSuccess);

// Assert
Assert.Throws<ArgumentException>(act);
}

[Fact]
public void ToObjectResult_WhenResultIsError_ShouldReturnObjectResultWithErrorDetails()
{
// Arrange
const int statusCode = 400;
const string errorMsg = "Bad request";
var result = Result.Failure(statusCode, errorMsg);

// Act
var objectResult = result.ToObjectResult();

// Assert
Assert.IsType<ObjectResult>(objectResult);
Assert.Equal(statusCode, objectResult.StatusCode);
Assert.Equal(errorMsg, objectResult.Value);
}

[Fact]
public void ToObjectResult_WhenResultIsSuccess_ShouldReturnObjectResultWithDefaultSuccessCode()
{
// Arrange
var result = Result.Success();

// Act
var objectResult = result.ToObjectResult();

// Assert
Assert.IsType<ObjectResult>(objectResult);
Assert.Equal(StatusCodes.Status200OK, objectResult.StatusCode);
Assert.Equal(string.Empty, objectResult.Value);
}

[Fact]
public void ToObjectResult_WhenResultIsSuccessWithCustomStatusCode_ShouldReturnObjectResultWithSpecifiedCode()
{
// Arrange
var result = Result.Success();
const int customSuccessCode = StatusCodes.Status201Created;

// Act
var objectResult = result.ToObjectResult(customSuccessCode);

// Assert
Assert.IsType<ObjectResult>(objectResult);
Assert.Equal(customSuccessCode, objectResult.StatusCode);
Assert.Equal(string.Empty, objectResult.Value);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ namespace TickAPI.Tests.Events.Controllers;

public class EventsControllerTests
{
private readonly EventFiltersDto _emptyFilters = new EventFiltersDto(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
private readonly EventFiltersDto _emptyFilters = new EventFiltersDto(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);

[Fact]
public async Task CreateEvent_WhenDataIsValid_ShouldReturnSuccess()
Expand Down Expand Up @@ -191,7 +191,7 @@ public async Task GetOrganizerEvents_WhenAllOperationsSucceed_ShouldReturnOkWith

// Assert
var result = Assert.IsType<ActionResult<PaginatedData<GetEventResponseDto>>>(response);
var okResult = Assert.IsType<OkObjectResult>(result.Result);
var okResult = Assert.IsType<ObjectResult>(result.Result);
Assert.Equal(StatusCodes.Status200OK, okResult.StatusCode);

var returnedPaginatedData = Assert.IsType<PaginatedData<GetEventResponseDto>>(okResult.Value);
Expand Down Expand Up @@ -385,7 +385,7 @@ public async Task GetOrganizerEventsPaginationDetails_WhenAllOperationsSucceed_S

// Assert
var result = Assert.IsType<ActionResult<PaginationDetails>>(response);
var okResult = Assert.IsType<OkObjectResult>(result.Result);
var okResult = Assert.IsType<ObjectResult>(result.Result);
Assert.Equal(StatusCodes.Status200OK, okResult.StatusCode);

var returnedPaginationDetails = Assert.IsType<PaginationDetails>(okResult.Value);
Expand Down Expand Up @@ -479,7 +479,7 @@ public async Task GetEvents_WhenAllOperationsSucceed_ShouldReturnOkWithPaginated

// Assert
var result = Assert.IsType<ActionResult<PaginatedData<GetEventResponseDto>>>(response);
var okResult = Assert.IsType<OkObjectResult>(result.Result);
var okResult = Assert.IsType<ObjectResult>(result.Result);
Assert.Equal(StatusCodes.Status200OK, okResult.StatusCode);

var returnedPaginatedData = Assert.IsType<PaginatedData<GetEventResponseDto>>(okResult.Value);
Expand Down Expand Up @@ -544,7 +544,7 @@ public async Task GetEventsPaginationDetails_WhenAllOperationsSucceed_ShouldRetu

// Assert
var result = Assert.IsType<ActionResult<PaginationDetails>>(response);
var okResult = Assert.IsType<OkObjectResult>(result.Result);
var okResult = Assert.IsType<ObjectResult>(result.Result);
Assert.Equal(StatusCodes.Status200OK, okResult.StatusCode);

var returnedPaginationDetails = Assert.IsType<PaginationDetails>(okResult.Value);
Expand Down Expand Up @@ -602,7 +602,7 @@ public async Task GetEventDetails_WhenAllOperationsSucceed_ShouldReturnOkWithEve

// Assert
var result = Assert.IsType<ActionResult<GetEventDetailsResponseDto>>(response);
var okResult = Assert.IsType<OkObjectResult>(result.Result);
var okResult = Assert.IsType<ObjectResult>(result.Result);
Assert.Equal(StatusCodes.Status200OK, okResult.StatusCode);

var returnedEventDetails = Assert.IsType<GetEventDetailsResponseDto>(okResult.Value);
Expand Down
Loading
Loading