Files
myoffice/MyOffice.Web/Program.Routes.cs
T
2023-12-16 21:18:01 +02:00

135 lines
7.1 KiB
C#

namespace MyOffice.Web;
public partial class Program
{
private static void MapRoutes(WebApplication app)
{
MapRoute(app, Routes.GlobalCurrencies, "General", "GetGlobalCurrencies", HttpMethod.Get);
// Settings Currency
MapRoute(app, Routes.SettingsCurrencies, "SettingCurrency", "Get", HttpMethod.Get);
MapRoute(app, Routes.SettingsCurrencies, "SettingCurrency", "Add", HttpMethod.Post);
MapRoute(app, Routes.SettingsCurrency, "SettingCurrency", "Update", HttpMethod.Put);
MapRoute(app, Routes.SettingsCurrency, "SettingCurrency", "Delete", HttpMethod.Delete);
MapRoute(app, Routes.SettingsCurrencyRate, "SettingCurrency", "AddRate", HttpMethod.Post);
// Settings Account Categories
MapRoute(app, Routes.SettingsAccountCategories, "SettingsAccountCategory", "AccountCategories", HttpMethod.Get);
MapRoute(app, Routes.SettingsAccountCategory, "SettingsAccountCategory", "AccountCategory", HttpMethod.Get);
MapRoute(app, Routes.SettingsAccountCategories, "SettingsAccountCategory", "AccountCategoriesAdd", HttpMethod.Post);
MapRoute(app, Routes.SettingsAccountCategory, "SettingsAccountCategory", "AccountCategoriesUpdate", HttpMethod.Put);
MapRoute(app, Routes.SettingsAccountCategory, "SettingsAccountCategory", "AccountCategoriesDelete", HttpMethod.Delete);
// Settings Account
MapRoute(app, Routes.SettingsAccounts, "SettingsAccount", "AccountsGet", HttpMethod.Get);
MapRoute(app, Routes.SettingsAccounts, "SettingsAccount", "AccountsAdd", HttpMethod.Post);
MapRoute(app, Routes.SettingsAccount, "SettingsAccount", "AccountsUpdate", HttpMethod.Put);
MapRoute(app, Routes.SettingsAccount, "SettingsAccount", "AccountsDelete", HttpMethod.Delete);
MapRoute(app, Routes.SettingsAccountAccountCategory, "SettingsAccount", "AccountsCategoryDelete", HttpMethod.Delete);
MapRoute(app, Routes.SettingsAccountAccesses, "SettingsAccount", "AccountsAccessAdd", HttpMethod.Post);
MapRoute(app, Routes.SettingsAccountAccess, "SettingsAccount", "AccountsAccessDelete", HttpMethod.Delete);
MapRoute(app, Routes.SettingsAccountInvites, "SettingsAccount", "AccountInvites", HttpMethod.Get);
MapRoute(app, Routes.SettingsAccountInviteAccept, "SettingsAccount", "AccountInviteAccept", HttpMethod.Post);
MapRoute(app, Routes.SettingsAccountInviteReject, "SettingsAccount", "AccountInviteReject", HttpMethod.Post);
// Settings Items
MapRoute(app, Routes.SettingsItemCategories, "SettingsItem", "ItemsCategories", HttpMethod.Get);
MapRoute(app, Routes.SettingsItemCategories, "SettingsItem", "ItemCategoriesAdd", HttpMethod.Post);
MapRoute(app, Routes.SettingsItemCategory, "SettingsItem", "ItemCategoriesUpdate", HttpMethod.Put);
MapRoute(app, Routes.SettingsItemCategory, "SettingsItem", "ItemCategoriesDelete", HttpMethod.Delete);
MapRoute(app, Routes.SettingsItems, "SettingsItem", "Items", HttpMethod.Get);
MapRoute(app, Routes.SettingsItem, "SettingsItem", "ItemsUpdate", HttpMethod.Put);
MapRoute(app, Routes.SettingsItems, "SettingsItem", "ItemsPost", HttpMethod.Post);
// Account
MapRoute(app, Routes.Accounts, "Account", "AccountsGet", HttpMethod.Get);
MapRoute(app, Routes.Account, "Account", "AccountGet", HttpMethod.Get);
MapRoute(app, Routes.AccountMotions, "Account", "MotionsGet", HttpMethod.Get);
MapRoute(app, Routes.AccountMotions, "Account", "MotionsPost", HttpMethod.Post);
MapRoute(app, Routes.AccountMotion, "Account", "MotionsPut", HttpMethod.Put);
MapRoute(app, Routes.AccountMotion, "Account", "MotionsDelete", HttpMethod.Delete);
MapRoute(app, Routes.Items, "Account", "FindItems", HttpMethod.Get);
// Dashboard
MapRoute(app, Routes.Dashboard, "Dashboard", "Index", HttpMethod.Get);
MapRoute(app, Routes.DashboardIncome, "Dashboard", "Income", HttpMethod.Get);
MapRoute(app, Routes.DashboardOutcome, "Dashboard", "Outcome", HttpMethod.Get);
// User
MapRoute(app, Routes.UserRegister, "User", "Register", HttpMethod.Post);
MapRoute(app, Routes.UserProfile, "User", "ProfileGet", HttpMethod.Get);
MapRoute(app, Routes.UserProfile, "User", "ProfileUpdate", HttpMethod.Post);
MapRoute(app, Routes.UserAttach, "User", "AttachProvider", HttpMethod.Post);
MapRoute(app, Routes.UserDeattach, "User", "DeattachProvider", HttpMethod.Post);
}
private static void MapRoute(
WebApplication app,
string route,
string controller,
string action,
params HttpMethod[] methods
)
{
object? constraints = null;
if (methods?.Any() == true)
{
constraints = new
{
httpMethod = new Microsoft.AspNetCore.Routing.Constraints.HttpMethodRouteConstraint(methods.Select(x => x.ToString()).ToArray())
};
}
app.MapControllerRoute(
name: $"{controller}_{action}",
pattern: route,
defaults: new
{
controller,
action,
},
constraints: constraints
);
}
}
public static class Routes
{
public static readonly string GlobalCurrencies = "api/general/currencies";
public static readonly string SettingsCurrencies = "api/settings/currencies";
public static readonly string SettingsCurrency = "api/settings/currencies/{id}";
public static readonly string SettingsCurrencyRate = "api/settings/currencies/{id}/rate";
public static readonly string SettingsAccountCategories = "api/settings/account-categories";
public static readonly string SettingsAccountCategory = "api/settings/account-categories/{id}";
public static readonly string SettingsAccounts = "api/settings/accounts";
public static readonly string SettingsAccount = "api/settings/accounts/{id}";
public static readonly string SettingsAccountAccountCategory = "api/settings/accounts/{id}/category/{categoryId}";
public static readonly string SettingsAccountAccesses = "api/settings/accounts/{id}/access";
public static readonly string SettingsAccountAccess = "api/settings/accounts/{id}/access/{userId}";
public static readonly string SettingsAccountInvites = "api/settings/accounts/invites";
public static readonly string SettingsAccountInviteAccept = "api/settings/accounts/invites/{id}/accept";
public static readonly string SettingsAccountInviteReject = "api/settings/accounts/invites/{id}/reject";
public static readonly string SettingsItemCategories = "api/settings/item-categories";
public static readonly string SettingsItemCategory = "api/settings/item-categories/{id}";
public static readonly string SettingsItems = "api/settings/items";
public static readonly string SettingsItem = "api/settings/items/{id}";
public static readonly string Accounts = "api/accounts";
public static readonly string Account = "api/accounts/{id}";
public static readonly string AccountMotions = "api/accounts/{id}/motions";
public static readonly string AccountMotion = "api/accounts/{id}/motions/{motionId}";
public static readonly string Items = "api/items";
public static readonly string Dashboard = "api/dashboard";
public static readonly string DashboardIncome = "api/dashboard/income";
public static readonly string DashboardOutcome = "api/dashboard/outcome";
public static readonly string UserRegister = "api/user/register";
public static readonly string UserProfile = "api/user/profile";
public static readonly string UserAttach = "api/user/attach";
public static readonly string UserDeattach = "api/user/deattach";
}