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

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

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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 571x 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 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.capability.edit` — explicit validation override matching the custom
 * handler's accepted shape (`capability` key + optional `action` / `otherAction`
 * detail arrays).
 */
export default validation(
    async ({lib: {type}}) =>
        function accessCapabilityEdit() {
            return {
                params: type.Object(
                    {
                        capability: type.Object(
                            {
                                capabilityId: type.String(),
                                capabilityName: type.Optional(type.String()),
                                description: type.Optional(
                                    type.Union([type.String(), type.Null()]),
                                ),
                            },
                            {additionalProperties: true},
                        ),
                        action: type.Optional(
                            type.Array(
                                type.Object(
                                    {
                                        entityName: type.Optional(type.String()),
                                        find: type.Optional(type.Boolean()),
                                        get: type.Optional(type.Boolean()),
                                        add: type.Optional(type.Boolean()),
                                        edit: type.Optional(type.Boolean()),
                                        remove: type.Optional(type.Boolean()),
                                    },
                                    {additionalProperties: true},
                                ),
                            ),
                        ),
                        otherAction: type.Optional(
                            type.Array(
                                type.Object(
                                    {
                                        actionId: type.Optional(type.String()),
                                        granted: type.Optional(type.Boolean()),
                                    },
                                    {additionalProperties: true},
                                ),
                            ),
                        ),
                    },
                    {additionalProperties: true},
                ),
                result: type.Object({}, {additionalProperties: true}),
            };
        },
);