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
3 changes: 2 additions & 1 deletion Core/Resgrid.Model/Providers/Models/INovuProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ namespace Resgrid.Model.Providers;

public interface INovuProvider
{
Task<bool> CreateSubscriber(string userId, int departmentId, string email, string firstName, string lastName);
Task<bool> CreateUserSubscriber(string userId, string code, int departmentId, string email, string firstName, string lastName);
Task<bool> CreateUnitSubscriber(int unitId, string code, int departmentId, string unitName);
}
29 changes: 19 additions & 10 deletions Providers/Resgrid.Providers.Messaging/NovuProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,35 @@
using Novu.Domain.Models.Subscribers;
using Resgrid.Framework;
using Resgrid.Model.Providers;
using static Resgrid.Framework.Testing.TestData;

namespace Resgrid.Providers.Messaging
{
public class NovuProvider: INovuProvider
public class NovuProvider : INovuProvider
{
public async Task<bool> CreateSubscriber(string userId, int departmentId, string email, string firstName, string lastName)
private async Task<bool> CreateSubscriber(string id, int departmentId, string email, string firstName, string lastName)
{
try
{
var novuConfiguration = new NovuClientConfiguration
{
Url = Config.ChatConfig.NovuBackendUrl, //"https://novu-api.my-domain.com/v1",
Url = $"{Config.ChatConfig.NovuBackendUrl}/v1", //"https://novu-api.my-domain.com/v1",
ApiKey = Config.ChatConfig.NovuSecretKey //"12345",
};

var novu = new NovuClient(novuConfiguration);

var subscriberCreateData = new SubscriberCreateData();
subscriberCreateData.SubscriberId = userId;
subscriberCreateData.SubscriberId = id;
subscriberCreateData.FirstName = firstName;
subscriberCreateData.LastName = lastName;
subscriberCreateData.Email = email;
subscriberCreateData.Data = new List<AdditionalData>();
subscriberCreateData.Data.Add(new AdditionalData
{
Key = "DepartmentId",
Value = departmentId.ToString()
});
//subscriberCreateData.Data = new List<AdditionalData>();
//subscriberCreateData.Data.Add(new AdditionalData
//{
// Key = "DepartmentId",
// Value = departmentId.ToString()
//});

var subscriber = await novu.Subscriber.Create(subscriberCreateData);

Expand All @@ -45,6 +46,14 @@ public async Task<bool> CreateSubscriber(string userId, int departmentId, string
}
}

public async Task<bool> CreateUserSubscriber(string userId, string code, int departmentId, string email, string firstName, string lastName)
{
return await CreateSubscriber($"{code}_User_{userId}", departmentId, email, firstName, lastName);
}

public async Task<bool> CreateUnitSubscriber(int unitId, string code, int departmentId, string unitName)
{
return await CreateSubscriber($"{code}_Unit_{unitId}", departmentId, $"{code}_Unit_{unitId}@units.resgrid.net", unitName, "");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ namespace Resgrid.Web.Services.Controllers.v4
public class ConfigController : ControllerBase
{
#region Members and Constructors

public ConfigController()
{

}
#endregion Members and Constructors

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ public async Task<ActionResult<DepartmentRightsResult>> GetCurrentUsersRights()

result.Data.DepartmentId = department.DepartmentId.ToString();
result.Data.DepartmentName = department.Name;
result.Data.DepartmentCode = department.Code;

var profile = await _userProfileService.GetProfileByUserIdAsync(UserId);
result.Data.EmailAddress = profile.MembershipEmail;
Expand Down Expand Up @@ -99,7 +100,7 @@ public async Task<ActionResult<DepartmentRightsResult>> GetCurrentUsersRights()
result.Data.CanAddNote = _permissionsService.IsUserAllowed(createNotePermission, result.Data.IsAdmin, isGroupAdmin, roles);
result.Data.CanCreateMessage = _permissionsService.IsUserAllowed(createMessagePermission, result.Data.IsAdmin, isGroupAdmin, roles);

var novuSuccess = await _novuProvider.CreateSubscriber(UserId, DepartmentId, profile.MembershipEmail, profile.FirstName, profile.LastName);
var novuSuccess = await _novuProvider.CreateUserSubscriber(UserId, department.Code, DepartmentId, profile.MembershipEmail, profile.FirstName, profile.LastName);

result.PageSize = 1;
result.Status = ResponseHelper.Success;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,11 @@ public class DepartmentRightsResultData
/// </summary>
public string DepartmentName { get; set; }

/// <summary>
/// Department code
/// </summary>
public string DepartmentCode { get; set; }

/// <summary>
/// Users full name
/// </summary>
Expand Down
Loading
Loading