Skip to content

Branch anh #5

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 4 commits into from
Closed
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
35 changes: 35 additions & 0 deletions MatchTraderBApi/Constants/RestEndpoints/AccountEndpoints.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
using MatchTraderBApi.Enums;
using MatchTraderBApi.Enums.SortingFields;
using MatchTraderBApi.Extensions;

namespace MatchTraderBApi.Constants.RestEndpoints;

internal static class AccountEndpoints
{
internal static string GetAccounts(
string? query, int? page, int? size, DateTime? from, DateTime? to, MTrAccountType? accountType, MTrAccountSortingField? sortField, MTrSortingOrder? sortingOrder)
=> "/v1/accounts" +
$"?query={query}" +
$"&page={page.ToString()}" +
$"&size={size.ToString()}" +
$"&from={from.ToString()}" +
$"&to={to.ToString()}" +
$"&accountType={accountType?.ToEnumString()}" +
$"&sort={string.Join(',', sortField?.ToEnumString(), sortingOrder?.ToEnumString())}";

internal static string GetAccountByEmail(string email) => $"/v1/accounts/by-email/{email}";
internal static string GetAccountByUuid(string accountUuid) => $"/v1/accounts/by-uuid/{accountUuid}";

internal static string GetAccountTimelineEvents(string accountUuid, MTrAccountTimelineEventType? eventType, DateTime? from, DateTime? to, MTrBasicSortingField? sortField, MTrSortingOrder? sortOrder)
=> $"/v1/accounts/{accountUuid}/timeline-events" +
$"?eventType={eventType?.ToEnumString()}" +
$"&from={from.ToString()}" +
$"&to={to.ToString()}" +
$"&sort={string.Join(',', sortField?.ToEnumString(), sortOrder?.ToEnumString())}";

internal static string CreateAccount() => "/v1/accounts";
internal static string UpdateAccountInfo(string accountUuid) => $"/v1/accounts/{accountUuid}";
internal static string ChangeAccountPassword() => "/v1/change-password";
internal static string AddNote() => "/v1/note";
internal static string AddTask() => "/v1/task";
}
32 changes: 32 additions & 0 deletions MatchTraderBApi/Constants/RestEndpoints/GeneralEndpoints.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
using MatchTraderBApi.Enums;
using MatchTraderBApi.Enums.SortingFields;
using MatchTraderBApi.Extensions;

namespace MatchTraderBApi.Constants.RestEndpoints;

public static class GeneralEndpoints
{
public static string ServiceInfo() => "/service-info";

public static string GetBranches(DateTime? from, DateTime? to, MTrBasicSortingField? sortField, MTrSortingOrder? sortOrder) => "/v1/branches" +
$"?from={from.ToString()}" +
$"&to={to.ToString()}" +
$"&sort={string.Join(',', sortField?.ToEnumString(), sortOrder?.ToEnumString())}";

public static string GetOffers(DateTime? from, DateTime? to, MTrBasicSortingField? sortField, MTrSortingOrder? sortOrder) => "/v1/offers" +
$"?from={from.ToString()}" +
$"&to={to.ToString()}" +
$"&sort={string.Join(',', sortField?.ToEnumString(), sortOrder?.ToEnumString())}";

public static string GetRoles(DateTime? from, DateTime? to, MTrBasicSortingField? sortField, MTrSortingOrder? sortOrder) => "/v1/roles" +
$"?from={from.ToString()}" +
$"&to={to.ToString()}" +
$"&sort={string.Join(',', sortField?.ToEnumString(), sortOrder?.ToEnumString())}";

public static string RetrievePlatformLogsV2(int? page, int? size, DateTime? from, DateTime? to, MTrSortingOrder? sortOrder) => "/v2/platform-logs" +
$"?page={page.ToString()}" +
$"&size={size.ToString()}" +
$"&from={from.ToString()}" +
$"&to={to.ToString()}" +
$"&sort={sortOrder?.ToEnumString()}";
}
23 changes: 23 additions & 0 deletions MatchTraderBApi/Constants/RestEndpoints/TradingAccountEndpoints.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
using MatchTraderBApi.Enums;
using MatchTraderBApi.Enums.SortingFields;
using MatchTraderBApi.Extensions;

namespace MatchTraderBApi.Constants.RestEndpoints;

public static class TradingAccountEndpoints
{
public static string GetTradingAccounts(
string? query, int? page, int? size, DateTime? from, DateTime? to, MTrTradingAccountSortingField? sortField, MTrSortingOrder? sortOrder)
=> "/v1/trading-accounts" +
$"?query={query}" +
$"&page={page.ToString()}" +
$"&size={size.ToString()}" +
$"&from={from.ToString()}" +
$"&to={to.ToString()}" +
$"&sort={string.Join(',', sortField?.ToEnumString(), sortOrder?.ToEnumString())}";

public static string GetTradingAccountByLogin(string systemUuid, string login) => $"/v1/trading-account?systemUuid={systemUuid}&login={login}";
public static string CreateNewTradingAccount(string accountUuid) => $"/v1/accounts/{accountUuid}/trading-accounts";
public static string UpdateTradingAccount(string systemUuid, string login) => $"/v1/trading-account?systemUuid={systemUuid}&login={login}";
public static string ChangeLeverage(string systemUuid, string login) => $"/v1/trading-account/leverage?systemUuid={systemUuid}&login={login}";
}
45 changes: 45 additions & 0 deletions MatchTraderBApi/Constants/RestEndpoints/TradingDataEndpoints.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
using System.Globalization;
using MatchTraderBApi.Enums;
using MatchTraderBApi.Extensions;

namespace MatchTraderBApi.Constants.RestEndpoints;

public static class TradingDataEndpoints
{
public static string GetOpenPositions(string systemUuid, string login)
=> $"/v1/trading-accounts/trading-data/open-positions?systemUuid={systemUuid}&login={login}";

public static string GetClosedPositions(string systemUuid, string login, DateTime? from, DateTime? to)
=> $"/v1/trading-accounts/trading-data/closed-positions?systemUuid={systemUuid}&login={login}" +
$"&from={from.ToString()}" +
$"&to={to.ToString()}";

public static string GetActiveOrders(string systemUuid, string login) => $"/v1/trading-accounts/trading-data/active-orders?systemUuid={systemUuid}&login={login}";
public static string GetLedgers(string systemUuid, string login, MTrLedgerType[] types, DateTime? from, DateTime? to, int? limit)
=> $"/v1/trading-accounts/trading-data/ledgers" +
$"?systemUuid={systemUuid}" +
$"&login={login}" +
$"&types[]={string.Join(',', types.Select(x => x.ToEnumString()))}" +
$"&from={from.ToString()}" +
$"&to={to.ToString()}" +
$"&limit={limit.ToString()}";

public static string GetGroups(string systemUuid) => $"/v1/groups?systemUuid={systemUuid}";
public static string GetGroupNames(string systemUuid) => $"/v1/group-names?systemUuid={systemUuid}";
public static string RetrieveOrdersHistoryByLoginsOrGroups() => "/v1/trading-accounts/trading-data/order-history";
public static string RetrieveLedgersByLoginsOrGroups() => "/v1/trading-accounts/trading-data/ledgers";
public static string RetrieveOpenPositionsByLoginsOrGroups() => "/v1/trading-accounts/open-positions";
public static string RetrieveClosedPositionsByLoginsOrGroups() => "/v1/trading-accounts/closed-positions";
public static string RetrieveOrdersHistoryByIds() => "/v1/trading-accounts/trading-data/order-history-by-ids";
public static string RetrieveOpenPositionsByIds() => "/v1/trading-accounts/trading-data/open-positions-by-ids";
public static string RetrieveClosedPositionsByIds() => "/v1/trading-accounts/trading-data/closed-positions-by-ids";
public static string RetrieveActiveOrdersByIds() => "/v1/trading-accounts/trading-data/active-orders-by-ids";

public static string GetCandles(string systemUuid, string symbol, MTrCandleInterval interval, DateTime from, DateTime to)
=> $"/v1/candles" +
$"?systemUuid={systemUuid}" +
$"&symbol={symbol}" +
$"&interval={interval.ToEnumString()}" +
$"&from={from.ToString(CultureInfo.InvariantCulture)}" +
$"&to={to.ToString(CultureInfo.InvariantCulture)}";
}
18 changes: 18 additions & 0 deletions MatchTraderBApi/Constants/RestEndpoints/TradingEndpoints.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
namespace MatchTraderBApi.Constants.RestEndpoints;

public static class TradingEndpoints
{
public static string GetSymbols(string systemUuid, string group, string[]? symbols)
=> symbols is null
? $"/v1/symbols?systemUuid={systemUuid}&group={group}"
: $"/v1/symbols?systemUuid={systemUuid}&group={group}&symbols={string.Join(',', symbols)}";

public static string OpenPosition() => "/v1/trading-accounts/positions/open";
public static string CreatePendingOrder() => "/v1/trading-accounts/pending-order/create";
public static string CancelPendingOrder() => "/v1/trading-accounts/pending-order/cancel";
public static string CreateCorrectionOrder() => "/v1/trading-accounts/correction-order/create";
public static string EditPosition() => "/v1/trading-accounts/positions/edit";
public static string ClosePosition() => "/v1/trading-accounts/positions/close";
public static string ClosePartialPosition() => "/v1/trading-accounts/positions/close-partially";
public static string CloseAllPosition() => "/v1/trading-accounts/positions/close-all";
}
6 changes: 6 additions & 0 deletions MatchTraderBApi/Constants/gRPCEndpoints/BaseEndpoints.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
namespace MatchTraderBApi.Constants.gRPCEndpoints;

public static class BaseEndpoints
{

}
132 changes: 0 additions & 132 deletions MatchTraderBApi/Endpoints/MTraderPaths.cs

This file was deleted.

16 changes: 8 additions & 8 deletions MatchTraderBApi/Enums/MTrRetCode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ namespace MatchTraderBApi.Enums;

public enum MTrRetCode
{
MTrRet200Ok,
MTrRet204OkNone,
MTrRet400BadRequest,
MTrRet401Unauthorized,
MTrRet403Forbidden,
MTrRet405WrongMethod,
MTrRet422Unprocessed,
MTrRet500InternalError
MTrRet200Ok = 200,
MTrRet204OkNone = 204,
MTrRet400BadRequest = 400,
MTrRet401Unauthorized = 401,
MTrRet403Forbidden = 403,
MTrRet405WrongMethod = 405,
MTrRet422Unprocessed = 422,
MTrRet500InternalError = 500,
}
23 changes: 23 additions & 0 deletions MatchTraderBApi/Exceptions/MTrRequestException.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
using MatchTraderBApi.Enums;

namespace MatchTraderBApi.Exceptions;

public class MTrRequestException : Exception
{
public MTrRetCode MTrRetCode { get; set; }
public string MtrContent { get; set; }

public MTrRequestException(MTrRetCode mtrRetCode, string mtrContent)
: base($"Match Trader API request failed. MTrRetCode = {mtrRetCode}, MTrContent: {mtrContent}")
{
MTrRetCode = mtrRetCode;
MtrContent = mtrContent;
}

public MTrRequestException(MTrRetCode mtrRetCode, string mtrContent, Exception innerException)
: base($"Match Trader API request failed. MTrRetCode = {mtrRetCode}, MTrContent: {mtrContent}", innerException)
{
MTrRetCode = mtrRetCode;
MtrContent = mtrContent;
}
}
Loading