1 | using System;
|
---|
2 | using System.Net;
|
---|
3 |
|
---|
4 | namespace Webserver.WebAPI.APIs.Permissions {
|
---|
5 | public static class PermissionsApiHelpers {
|
---|
6 | public static bool TryParseId (RequestContext _context, byte[] _jsonInputData, out PlatformUserIdentifierAbs _userId,
|
---|
7 | out string _groupId) {
|
---|
8 | string id = _context.RequestPath;
|
---|
9 | _userId = default;
|
---|
10 | _groupId = default;
|
---|
11 |
|
---|
12 | if (string.IsNullOrEmpty (id)) {
|
---|
13 | WebUtils.SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_USER_OR_GROUP");
|
---|
14 | return false;
|
---|
15 | }
|
---|
16 |
|
---|
17 | const string kindUserPrefix = "user/";
|
---|
18 | if (id.StartsWith (kindUserPrefix, StringComparison.Ordinal)) {
|
---|
19 | bool validId = PlatformUserIdentifierAbs.TryFromCombinedString (id.Substring (kindUserPrefix.Length), out _userId);
|
---|
20 | if (!validId) {
|
---|
21 | WebUtils.SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "INVALID_USER");
|
---|
22 | }
|
---|
23 |
|
---|
24 | return validId;
|
---|
25 | }
|
---|
26 |
|
---|
27 | const string kindGroupPrefix = "group/";
|
---|
28 | if (id.StartsWith (kindGroupPrefix, StringComparison.Ordinal)) {
|
---|
29 | _groupId = id.Substring (kindGroupPrefix.Length);
|
---|
30 | bool validId = _groupId.Length > 0;
|
---|
31 | if (!validId) {
|
---|
32 | WebUtils.SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "INVALID_GROUP");
|
---|
33 | }
|
---|
34 |
|
---|
35 | return validId;
|
---|
36 | }
|
---|
37 |
|
---|
38 | WebUtils.SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "INVALID_KIND");
|
---|
39 | return false;
|
---|
40 | }
|
---|
41 | }
|
---|
42 | }
|
---|