52 lines
2.8 KiB
C#
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";
|
|
} |