Skip to content

Commit f1bbb5d

Browse files
committed
.
1 parent 4ca6d63 commit f1bbb5d

File tree

8 files changed

+91
-71
lines changed

8 files changed

+91
-71
lines changed

.github/workflows/dotnet.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@ jobs:
2424
context: RSODiscussionMicroServiceAPI/
2525
push: true
2626
tags: muchacho3alex/rsodiscussionservice:latest
27-
file: RSODiscussionMicroServiceAPI/RSODiscussionMicroService/Dockerfile
27+
file: RSODiscussionMicroServiceAPI/RSODiscussionMicroServiceAPI/Dockerfile

RSODiscussionMicroServiceAPI/RSO.Core/BL/DiscussionLogic.cs

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,15 @@ namespace RSO.Core.BL;
1010
public class DiscussionLogic : IDiscussionLogic
1111
{
1212
private readonly IUnitOfWork _unitOfWork;
13-
private readonly JwtSecurityTokenConfiguration _jwtConfiguration;
13+
//private readonly JwtSecurityTokenConfiguration _jwtConfigurtion;
1414

1515
/// <summary>
1616
/// Initializes the <see cref="DiscussionLogic"/> class.
1717
/// </summary>
1818
/// <param name="unitOfWork"><see cref="IUnitOfWork"/> instance.</param>
19-
/// <param name="jwtConfiguration"><see cref="JwtSecurityTokenConfiguration"/> dependency injection.</param>
20-
public DiscussionLogic(IUnitOfWork unitOfWork, JwtSecurityTokenConfiguration jwtConfiguration)
19+
public DiscussionLogic(IUnitOfWork unitOfWork)
2120
{
2221
_unitOfWork = unitOfWork;
23-
_jwtConfiguration = jwtConfiguration;
2422
}
2523

2624
///<inheritdoc/>
@@ -79,6 +77,33 @@ public async Task<Discussion> GetDiscussionAsync(int id)
7977
}
8078
}
8179

80+
public async Task<List<Discussion>> GetDiscussionAsyncByAdIdAsync(int adId)
81+
{
82+
try
83+
{
84+
var discussions = await _unitOfWork.DiscussionRepository.GetAllAsync();
85+
return discussions.Where(d => d.AddId == adId).ToList();
86+
}
87+
catch (Exception ex)
88+
{
89+
return Enumerable.Empty<Discussion>().ToList();
90+
}
91+
}
92+
93+
///<inheritdoc/>
94+
public async Task<List<Discussion>> GetDiscussionsByUserIdAsync(int userId)
95+
{
96+
try
97+
{
98+
var discussions = await _unitOfWork.DiscussionRepository.GetAllAsync();
99+
return discussions.Where(d => d.UserId == userId).ToList();
100+
}
101+
catch (Exception ex)
102+
{
103+
return Enumerable.Empty<Discussion>().ToList();
104+
}
105+
}
106+
82107
///<inheritdoc/>
83108
public async Task<bool> UpdateDiscussionAsync(Discussion d)
84109
{

RSODiscussionMicroServiceAPI/RSO.Core/BL/IDiscussionLogic.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,17 @@ public interface IDiscussionLogic
4242
/// <returns></returns>
4343
public Task<List<Discussion>> GetAllDiscussionsAsync();
4444

45+
/// <summary>
46+
///
47+
/// </summary>
48+
/// <param name="userId"></param>
49+
/// <returns></returns>
50+
public Task<List<Discussion>> GetDiscussionsByUserIdAsync(int userId);
51+
52+
/// <summary>
53+
///
54+
/// </summary>
55+
/// <param name="adId"></param>
56+
/// <returns></returns>
57+
Task<List<Discussion>> GetDiscussionAsyncByAdIdAsync(int adId);
4558
}

RSODiscussionMicroServiceAPI/RSODiscussionMicroServiceAPI/GraphQL/DiscussionResolver.cs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,11 @@ namespace RSODiscussionMicroServiceAPI.GraphQL;
66
[ExtendObjectType("Query")]
77
public class DiscussionQueryResolver
88
{
9-
public async Task<Discussion> GetDiscussionAsync([Service] IDiscussionLogic discussionLogic, int id)
10-
{
11-
return await discussionLogic.GetDiscussionAsync(id);
12-
}
9+
public async Task<Discussion> GetDiscussionAsync(int id, IDiscussionLogic discussionLogic) => await discussionLogic.GetDiscussionAsync(id);
1310

14-
public async Task<List<Discussion>> GetAllDiscussionsAsync([Service] IDiscussionLogic discussionLogic)
15-
{
16-
return await discussionLogic.GetAllDiscussionsAsync();
17-
}
11+
//public async Task<List<Discussion>> GetAllDiscussionsAsync(IDiscussionLogic discussionLogic) => await discussionLogic.GetAllDiscussionsAsync();
12+
13+
//public async Task<List<Discussion>> GetDiscussionsByUserIdAsync(IDiscussionLogic discussionLogic, int userId) => await discussionLogic.GetDiscussionsByUserIdAsync(userId);
14+
15+
//public async Task<List<Discussion>> GetDiscussionsByAdAsync(IDiscussionLogic discussionLogic, int adId) => await discussionLogic.GetDiscussionAsyncByAdIdAsync(adId);
1816
}

RSODiscussionMicroServiceAPI/RSODiscussionMicroServiceAPI/GraphQL/Query.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22

33
public class Query
44
{
5+
public string Hello() => "Hello World!";
56
}
Lines changed: 36 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
using Carter;
2-
using Microsoft.AspNetCore.Authentication.JwtBearer;
32
using Microsoft.EntityFrameworkCore;
43
using Microsoft.Extensions.Options;
5-
using Microsoft.IdentityModel.Tokens;
4+
using RSO.Core.BL;
65
using RSO.Core.Configurations;
76
using RSO.Core.DiscussionModels;
87
using RSO.Core.Repository;
98
using RSODiscussionMicroServiceAPI.GraphQL;
10-
using System.Text;
9+
using HotChocolate;
1110

1211
var builder = WebApplication.CreateBuilder(args);
1312

@@ -17,7 +16,9 @@
1716
//Explicitly register the settings objects by delegating to the IOptions object.
1817
builder.Services.AddSingleton(resolver => resolver.GetRequiredService<IOptions<DiscussionServicesSettingsConfiguration>>().Value);
1918

20-
builder.Services.AddGraphQLServer().AddQueryType(q => q.Name("Query")).AddType<DiscussionQueryResolver>();
19+
//builder.Services.AddGraphQLServer().AddQueryType(q => q.Name("Query")).AddType<DiscussionQueryResolver>();
20+
21+
builder.Services.AddGraphQLServer().AddQueryType<Query>();
2122

2223
// Database connection
2324
builder.Services.AddDbContext<DiscussionServicesRSOContext>(options =>
@@ -31,26 +32,8 @@
3132

3233
builder.Services.AddScoped<IUnitOfWork, UnitOfWork>();
3334
builder.Services.AddScoped<IDiscussionRepository, DiscussionRepository>(); //In each microservice a different repository/serice is inlcuded. If more tables are needed add more repos related to the microservice.
34-
//builder.Services.AddScoped<IDiscussionLogic, DiscussionLogic>(); //In each microservice a different repository/serice is inlcuded.*/
35-
36-
// JWT
37-
var jwtSecurityConfig = builder.Configuration.GetSection("JwtSecurityTokenConfiguration").Get<JwtSecurityTokenConfiguration>();
38-
builder.Services
39-
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
40-
.AddJwtBearer(options =>
41-
{
42-
options.TokenValidationParameters = new()
43-
{
44-
ValidateIssuer = true,
45-
ValidateAudience = true,
46-
ValidateLifetime = true,
47-
ValidateIssuerSigningKey = true,
35+
builder.Services.AddScoped<IDiscussionLogic, DiscussionLogic>(); //In each microservice a different repository/serice is inlcuded.*/
4836

49-
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSecurityConfig.SecretKey)),
50-
ValidIssuer = jwtSecurityConfig.Issuer,
51-
ValidAudience = jwtSecurityConfig.Audience
52-
};
53-
});
5437

5538
//Carter
5639
builder.Services.AddHttpContextAccessor();
@@ -59,25 +42,25 @@
5942
builder.Services.AddAuthorization();
6043
builder.Services.AddEndpointsApiExplorer();
6144

62-
builder.Services.AddOpenApiDocument(options =>
63-
{
64-
options.PostProcess = document =>
65-
{
66-
document.Info = new()
67-
{
68-
Version = "v1",
69-
Title = "DiscussionCodeFirst microservices API",
70-
Description = "DiscussionLogic microservices API endpoints",
71-
TermsOfService = "Lol.",
72-
Contact = new()
73-
{
74-
Name = "Aleksander Kovac & Urban Poljsak",
75-
Url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
76-
}
77-
};
78-
};
79-
options.UseControllerSummaryAsTagDescription = true;
80-
});
45+
//builder.Services.AddOpenApiDocument(options =>
46+
//{
47+
// options.PostProcess = document =>
48+
// {
49+
// document.Info = new()
50+
// {
51+
// Version = "v1",
52+
// Title = "DiscussionCodeFirst microservices API",
53+
// Description = "DiscussionLogic microservices API endpoints",
54+
// TermsOfService = "Lol.",
55+
// Contact = new()
56+
// {
57+
// Name = "Aleksander Kovac & Urban Poljsak",
58+
// Url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
59+
// }
60+
// };
61+
// };
62+
// options.UseControllerSummaryAsTagDescription = true;
63+
//});
8164
// APP.
8265
var app = builder.Build();
8366
app.MapGraphQL();
@@ -86,18 +69,18 @@
8669
app.UseRouting();
8770
// Carter
8871
app.MapCarter();
89-
app.UseOpenApi();
90-
app.UseSwaggerUi3(options =>
91-
{
92-
options.Path = "/openapi";
93-
options.TagsSorter = "DiscussionCodeFirst";
94-
});
72+
//app.UseOpenApi();
73+
//app.UseSwaggerUi3(options =>
74+
//{
75+
// options.Path = "/openapi/graphql";
76+
// options.TagsSorter = "DiscussionCodeFirst";
77+
//});
9578

9679
app.UseAuthentication();
9780
app.UseAuthorization();
9881

99-
app.UseEndpoints(endpoints =>
100-
{
101-
endpoints.MapRazorPages();
102-
endpoints.MapControllers();
103-
});
82+
//app.UseEndpoints(endpoints =>
83+
//{
84+
// endpoints.MapRazorPages();
85+
// endpoints.MapControllers();
86+
//});

RSODiscussionMicroServiceAPI/RSODiscussionMicroServiceAPI/Properties/launchSettings.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"http": {
44
"commandName": "Project",
55
"launchBrowser": true,
6-
"launchUrl": "swagger",
6+
"launchUrl": "graphql",
77
"environmentVariables": {
88
"ASPNETCORE_ENVIRONMENT": "Development"
99
},
@@ -13,7 +13,7 @@
1313
"https": {
1414
"commandName": "Project",
1515
"launchBrowser": true,
16-
"launchUrl": "swagger",
16+
"launchUrl": "graphql",
1717
"environmentVariables": {
1818
"ASPNETCORE_ENVIRONMENT": "Development"
1919
},
@@ -23,15 +23,15 @@
2323
"IIS Express": {
2424
"commandName": "IISExpress",
2525
"launchBrowser": true,
26-
"launchUrl": "swagger",
26+
"launchUrl": "graphql",
2727
"environmentVariables": {
2828
"ASPNETCORE_ENVIRONMENT": "Development"
2929
}
3030
},
3131
"Docker": {
3232
"commandName": "Docker",
3333
"launchBrowser": true,
34-
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger",
34+
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/graphql",
3535
"environmentVariables": {
3636
"ASPNETCORE_URLS": "https://+:443;http://+:80"
3737
},

RSODiscussionMicroServiceAPI/RSODiscussionMicroServiceAPI/appsettings.Development.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
}
77
},
88
"ConnectionStrings": {
9-
"DiscussionServicesRSOdb": "Trust Server Certificate=True;SSL Mode=Require;Persist Security Info=True;Password=qnxe8EkfDb1G;Username=shanji97;Database=discussionsdb;Host=ep-icy-surf-93471556.eu-central-1.aws.neon.tech"
9+
"DiscussionServicesRSOdb": "Password=qnxe8EkfDb1G;Username=shanji97;Database=discussionsdb;Host=ep-icy-surf-93471556.eu-central-1.aws.neon.tech"
1010
}
1111
}

0 commit comments

Comments
 (0)