You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

EndpointHandler.cs 2.0 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System;
  2. using System.Collections.Generic;
  3. namespace Discord.Tests.Framework
  4. {
  5. public class EndpointHandler
  6. {
  7. public static EndpointHandler Instance;
  8. public delegate string RestMessageHandler(string method, string json);
  9. public Dictionary<string, RestMessageHandler> Handlers;
  10. public EndpointHandler()
  11. {
  12. Instance = this;
  13. // Setup Endpoints
  14. Handlers = new Dictionary<string, RestMessageHandler>();
  15. // /users Endpoints
  16. Handlers.Add("GET->users/@me", Responses.Users.UserHandlers.Me_Handler);
  17. Handlers.Add("GET->users/96642168176807936", Responses.Users.UserHandlers.Id_User_Valid);
  18. Handlers.Add("GET->users/1", Responses.Users.UserHandlers.Id_User_Invalid);
  19. Handlers.Add("GET->users/@me/guilds", Responses.Users.UserHandlers.Me_Guilds);
  20. // /guilds endpoints
  21. Handlers.Add("GET->guilds/66078535390867456", Responses.Guilds.GuildHandlers.Id_Valid);
  22. Handlers.Add("GET->guilds/66078535390867456/bans", Responses.Guilds.GuildHandlers.Bans_Valid);
  23. Handlers.Add("GET->guilds/66078535390867456/members?limit=2147483647&offset=0", Responses.Guilds.GuildHandlers.Members_Valid);
  24. Handlers.Add("GET->guilds/66078535390867456/members/1", Responses.Guilds.GuildHandlers.Member_Invalid);
  25. Handlers.Add("GET->guilds/66078535390867456/members/66078337084162048", Responses.Guilds.GuildHandlers.Member_Valid);
  26. Handlers.Add("GET->guilds/1", Responses.Guilds.GuildHandlers.Id_Invalid);
  27. }
  28. public string HandleMessage(string method, string endpoint, string json)
  29. {
  30. var key = $"{method}->{endpoint}";
  31. if (Handlers.ContainsKey(key))
  32. return Handlers[key].Invoke(method, json);
  33. throw new NotImplementedException($"{method} -> {endpoint} -> {json}");
  34. }
  35. }
  36. }