All files / realm/blong-access/gateway/access accessAclEdit.ts

100% Statements 38/38
100% Branches 2/2
100% Functions 1/1
100% Lines 38/38

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 391x 1x 1x 1x 1x 1x 1x 1x 1x 1x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 1x  
import {validation} from '@feasibleone/blong';
 
/**
 * `access.acl.edit` — explicit validation override.
 *
 * Same shape as `access.acl.add`: the auto-generated schema would reject the
 * virtual display fields the editor round-trips (the handler drops them).
 */
export default validation(
    async ({lib: {type}}) =>
        function accessAclEdit() {
            return {
                params: type.Object(
                    {
                        acl: type.Object(
                            {
                                aclId: type.Optional(type.String()),
                                principalId: type.Optional(type.String()),
                                actionId: type.Optional(type.String()),
                                targetKind: type.Optional(type.String()),
                                targetId: type.Optional(type.String()),
                                effect: type.Optional(type.String()),
                                isActive: type.Optional(
                                    type.Union([type.Boolean(), type.Literal(0), type.Literal(1)]),
                                ),
                                principalName: type.Optional(type.String()),
                                actionName: type.Optional(type.String()),
                                targetName: type.Optional(type.String()),
                            },
                            {additionalProperties: true},
                        ),
                    },
                    {additionalProperties: true},
                ),
                result: type.Object({}, {additionalProperties: true}),
            };
        },
);