Files
FsMcp/FsMcp/Endpoints.cs

52 lines
2.8 KiB
C#

namespace FsMcp;
public static class Endpoints
{
public static string UserLogin => $"{ApiBase}/api/login";
public static string UserCurrentDetails => $"{ApiBase}/api/users/current/details";
public static string RegionStores(int regionId) => $"{ApiBase}/api/regions/{regionId}/stores";
public static string RegionUsers(int regionId) => $"{ApiBase}/api/regions/{regionId}/users";
public static string StoreMembers(int storeId) => $"{ApiBase}/api/stores/{storeId}/members";
public static string RegionForumThreads(int regionId, int? subforumId = null, int? limit = null, int? offset = null)
{
var query = new List<string>();
if (subforumId.HasValue) query.Add($"subforumId={subforumId.Value}");
if (limit.HasValue) query.Add($"limit={limit.Value}");
if (offset.HasValue) query.Add($"offset={offset.Value}");
var qs = query.Count > 0 ? "?" + string.Join("&", query) : "";
return $"{ApiBase}/api/regions/{regionId}/forum/threads{qs}";
}
public static string ForumThread(int threadId) => $"{ApiBase}/api/forum/threads/{threadId}";
public static string SearchAll(string q, bool? global = null) => $"{ApiBase}/api/search/all?q={Uri.EscapeDataString(q)}" + (global.HasValue ? $"&global={global.Value.ToString().ToLower()}" : "");
public static string StoreLogActions(int storeId, string fromDate, string toDate, string storeLogActionIds) =>
$"{ApiBase}/api/stores/{storeId}/log/{fromDate}/{toDate}/actions/{storeLogActionIds}";
public static string Conversations(int? limit = null, int? offset = null)
{
var query = new List<string>();
if (limit.HasValue) query.Add($"limit={limit.Value}");
if (offset.HasValue) query.Add($"offset={offset.Value}");
var qs = query.Count > 0 ? "?" + string.Join("&", query) : "";
return $"{ApiBase}/api/conversations{qs}";
}
public static string Conversation(int conversationId, int? limit = null, bool? markAsRead = null)
{
var query = new List<string>();
if (limit.HasValue) query.Add($"limit={limit.Value}");
if (markAsRead.HasValue) query.Add($"markAsRead={markAsRead.Value.ToString().ToLower()}");
var qs = query.Count > 0 ? "?" + string.Join("&", query) : "";
return $"{ApiBase}/api/conversations/{conversationId}{qs}";
}
public static string ConversationMessages(int conversationId, int? olderThanId = null, int? limit = null)
{
var query = new List<string>();
if (olderThanId.HasValue) query.Add($"olderThanId={olderThanId.Value}");
if (limit.HasValue) query.Add($"limit={limit.Value}");
var qs = query.Count > 0 ? "?" + string.Join("&", query) : "";
return $"{ApiBase}/api/conversations/{conversationId}/messages{qs}";
}
private static string ApiBase => "https://beta.foodsharing.de";
}