135 lines
7.1 KiB
C#
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";
|
|
} |