feat(apiv2): GET endpoints except guilds

- ResolveT methods in ControllerBase
- ContextFor methods in ControllerBase
This commit is contained in:
spiral
2021-10-12 05:17:54 -04:00
parent 11620d94c8
commit e2a56a198f
9 changed files with 249 additions and 60 deletions

View File

@@ -35,7 +35,8 @@ namespace PluralKit.API
if (systemRef == "@me")
{
HttpContext.Items.TryGetValue("SystemId", out var systemId);
if (systemId == null) return null;
if (systemId == null)
throw APIErrors.GenericAuthError;
return _repo.GetSystem((SystemId)systemId);
}
@@ -51,11 +52,47 @@ namespace PluralKit.API
return null;
}
public LookupContext LookupContextFor(PKSystem target)
protected Task<PKMember?> ResolveMember(string memberRef)
{
if (Guid.TryParse(memberRef, out var guid))
return _repo.GetMemberByGuid(guid);
if (_shortIdRegex.IsMatch(memberRef))
return _repo.GetMemberByHid(memberRef);
return null;
}
protected Task<PKGroup?> ResolveGroup(string groupRef)
{
if (Guid.TryParse(groupRef, out var guid))
return _repo.GetGroupByGuid(guid);
if (_shortIdRegex.IsMatch(groupRef))
return _repo.GetGroupByHid(groupRef);
return null;
}
public LookupContext ContextFor(PKSystem system)
{
HttpContext.Items.TryGetValue("SystemId", out var systemId);
if (systemId == null) return LookupContext.ByNonOwner;
return target.Id == (SystemId)systemId ? LookupContext.ByOwner : LookupContext.ByNonOwner;
return ((SystemId)systemId) == system.Id ? LookupContext.ByOwner : LookupContext.ByNonOwner;
}
public LookupContext ContextFor(PKMember member)
{
HttpContext.Items.TryGetValue("SystemId", out var systemId);
if (systemId == null) return LookupContext.ByNonOwner;
return ((SystemId)systemId) == member.System ? LookupContext.ByOwner : LookupContext.ByNonOwner;
}
public LookupContext ContextFor(PKGroup group)
{
HttpContext.Items.TryGetValue("SystemId", out var systemId);
if (systemId == null) return LookupContext.ByNonOwner;
return ((SystemId)systemId) == group.System ? LookupContext.ByOwner : LookupContext.ByNonOwner;
}
}
}