Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 7 additions & 1 deletion .github/workflows/create-deploy-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,15 @@ jobs:
// Label already exists
}

await github.rest.issues.create({
const issue = await github.rest.issues.create({
owner, repo,
title: `✅ Staging deployed — approve ${sha.slice(0, 7)} for production`,
body,
labels: ['deploy-review']
});

core.summary
.addHeading('Deploy Review Created', 2)
.addRaw(`👉 <a href="${issue.data.html_url}"><strong>Open issue #${issue.data.number} to approve or deny</strong></a>`)
.addBreak()
.write();
1 change: 0 additions & 1 deletion .github/workflows/print-versions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ on:
workflow_run:
types: [completed]
workflows:
- CI
- Build and deploy ASP.Net Core app to Azure Web App - jobflow-api-staging
- Build and deploy ASP.Net Core app to Azure Web App - jobflow-api

Expand Down
2 changes: 2 additions & 0 deletions JobFlow.API/Controllers/DispatchController.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using JobFlow.API.Extensions;
using JobFlow.Business.Models.DTOs;
using JobFlow.Business.Services.ServiceInterfaces;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;

namespace JobFlow.API.Controllers;
Expand All @@ -26,6 +27,7 @@ public DispatchController(
_jobService = jobService;
}

[Authorize]
[HttpGet("board")]
public async Task<IActionResult> GetBoard([FromQuery] DateTime start, [FromQuery] DateTime end)
{
Expand Down
2 changes: 2 additions & 0 deletions JobFlow.API/Controllers/OrganizationClientController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
using JobFlow.Domain.Models;
using Hangfire;
using MapsterMapper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using JobFlow.Infrastructure.Persistence;
Expand Down Expand Up @@ -44,6 +45,7 @@ public OrganizationClientController(

[HttpGet]
[Route("all")]
[Authorize]
public async Task<IResult> GetAllClients()
{
var result = await organizationClientService.GetAllClients();
Expand Down
1 change: 1 addition & 0 deletions JobFlow.API/Controllers/OrganizationController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ ILogger<OrganizationController> logger

[HttpGet]
[Route("all")]
[Authorize]
public async Task<IResult> GetAllOrganizations()
{
var result = await _organizationService.GetAllOrganizations();
Expand Down
2 changes: 2 additions & 0 deletions JobFlow.API/Controllers/UserController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ public async Task<IResult> GetById(Guid id)
return result.IsSuccess ? Results.Ok(result.Value) : result.ToProblemDetails();
}

[Authorize]
[HttpPost]
public async Task<IResult> CreateOrUpdate([FromBody] User model)
{
Expand All @@ -50,6 +51,7 @@ public async Task<IResult> Delete(Guid id)
return result.IsSuccess ? Results.Ok() : result.ToProblemDetails();
}

[Authorize]
[HttpPost("{id}/assign-role")]
public async Task<IResult> AssignRole(Guid id, [FromQuery] string role)
{
Expand Down
18 changes: 9 additions & 9 deletions JobFlow.Business/Services/OrganizationService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public OrganizationService(

public async Task<Result> DeleteOrganization(Guid organizationId)
{
var organizationToDelete = _organizations.FirstOrDefault(org => org.Id == organizationId);
var organizationToDelete = await _organizations.FirstOrDefaultAsync(org => org.Id == organizationId);
if (organizationToDelete == null) return Result.Failure(OrganizationErrors.OrganizationNotFound);
_unitOfWork.RepositoryOf<Organization>().Remove(organizationToDelete);
await _unitOfWork.SaveChangesAsync();
Expand All @@ -47,16 +47,16 @@ public async Task<Result> DeleteOrganization(Guid organizationId)

public async Task<Result<IEnumerable<Organization>>> GetAllOrganizations()
{
var organizations = _organizations.AsEnumerable();
var organizations = await _organizations.ToListAsync();

if (!organizations.Any())
if (organizations.Count == 0)
return Result.Failure<IEnumerable<Organization>>(OrganizationErrors.OrganizationNotFound);
return Result.Success(organizations);
return Result.Success<IEnumerable<Organization>>(organizations);
}

public async Task<Result<Organization>> GetOrganiztionById(Guid orgId)
{
var organization = _organizations.FirstOrDefault(org => org.Id == orgId);
var organization = await _organizations.FirstOrDefaultAsync(org => org.Id == orgId);

if (organization == null) return Result.Failure<Organization>(OrganizationErrors.OrganizationNotFound);
return Result.Success(organization);
Expand Down Expand Up @@ -144,7 +144,7 @@ public async Task<Result> UpdateSubscriptionStateAsync(Guid organizationId, stri
if (organizationId == Guid.Empty)
return Result.Failure(OrganizationErrors.NullOrEmptyId);

var organization = _organizations.FirstOrDefault(org => org.Id == organizationId);
var organization = await _organizations.FirstOrDefaultAsync(org => org.Id == organizationId);
if (organization == null)
return Result.Failure(OrganizationErrors.OrganizationNotFound);

Expand Down Expand Up @@ -172,7 +172,7 @@ public async Task<Result<Organization>> UpsertOrganization(Organization model)
}
else
{
var organization = _organizations.FirstOrDefault(org => org.Id == model.Id);
var organization = await _organizations.FirstOrDefaultAsync(org => org.Id == model.Id);
if (organization == null) return Result.Failure<Organization>(OrganizationErrors.OrganizationNotFound);
_unitOfWork.RepositoryOf<Organization>().Update(model);
await _unitOfWork.SaveChangesAsync();
Expand All @@ -183,7 +183,7 @@ public async Task<Result<Organization>> UpsertOrganization(Organization model)

public async Task<Result<OrganizationDto>> UpdateOrganizationAsync(Guid organizationId, UpdateOrganizationRequest request)
{
var organization = _organizations.FirstOrDefault(org => org.Id == organizationId);
var organization = await _organizations.FirstOrDefaultAsync(org => org.Id == organizationId);
if (organization == null)
return Result.Failure<OrganizationDto>(OrganizationErrors.OrganizationNotFound);

Expand Down Expand Up @@ -218,7 +218,7 @@ public async Task<Result<OrganizationDto>> UpdateOrganizationAsync(Guid organiza

public async Task<Result<Organization>> UpdateIndustryAsync(Guid organizationId, string? industryKey)
{
var organization = _organizations.FirstOrDefault(org => org.Id == organizationId);
var organization = await _organizations.FirstOrDefaultAsync(org => org.Id == organizationId);
if (organization == null)
{
return Result.Failure<Organization>(OrganizationErrors.OrganizationNotFound);
Expand Down
15 changes: 8 additions & 7 deletions JobFlow.Business/Services/UserService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@ public UserService(ILogger<UserService> logger, IUnitOfWork unitOfWork)

public async Task<Result<IEnumerable<User>>> GetAllUsers()
{
var userList = unitOfWork.RepositoryOf<User>().Query()
var userList = await unitOfWork.RepositoryOf<User>().Query()
.Include(u => u.UserRoles)
.ThenInclude(ur => ur.Role);
.ThenInclude(ur => ur.Role)
.ToListAsync();

if (!userList.Any())
if (userList.Count == 0)
return Result.Failure<IEnumerable<User>>(UserErrors.UserNotFound);

return Result.Success<IEnumerable<User>>(userList);
Expand Down Expand Up @@ -59,7 +60,7 @@ public async Task<Result<User>> UpsertUser(User model)

public async Task<Result> DeleteUser(Guid userId)
{
var userToDelete = unitOfWork.RepositoryOf<User>().Query().FirstOrDefault(u => u.Id == userId);
var userToDelete = await unitOfWork.RepositoryOf<User>().Query().FirstOrDefaultAsync(u => u.Id == userId);

if (userToDelete == null)
return Result.Failure(UserErrors.UserNotFound);
Expand All @@ -77,10 +78,10 @@ public Task<Result<User>> GetUserByEmail(string email)

public async Task<Result> AssignRole(Guid userId, string role)
{
var identityRole = unitOfWork.RepositoryOf<SystemRole>().Query().FirstOrDefault(e => e.Name == role);
var identityRole = await unitOfWork.RepositoryOf<SystemRole>().Query().FirstOrDefaultAsync(e => e.Name == role);
if (identityRole == null) return Result.Failure(Error.NullValue);
var identityUserRoles = unitOfWork.RepositoryOf<UserRole>().Query()
.FirstOrDefault(e => e.RoleId == identityRole.Id && e.UserId == userId);
var identityUserRoles = await unitOfWork.RepositoryOf<UserRole>().Query()
.FirstOrDefaultAsync(e => e.RoleId == identityRole.Id && e.UserId == userId);
if (identityUserRoles != null) return Result.Failure(UserErrors.UserRoleExist);
var userRoleToAdd = new UserRole
{
Expand Down
Loading