Get employee roles by employee number

Summary

  • Source repository: jef-systems/jef-one-backend

  • Source SHA: ac65ed21b4ea52235f472efeef826c144a2fe812

  • Source run id: 30028079423

  • Module: One

  • Lambda function: jef-one-get-employee-role-by-employee-number

  • HTTP method: GET

  • Invocation mode: sync

  • Package mode: no-package

  • API category: One Complex Sync No Package GET APIs

  • API path: /one/complex-sync-no-packages/jef-one-get-employee-role-by-employee-number

  • Endpoint URL: https://api.jefoffice.com/one/complex-sync-no-packages/jef-one-get-employee-role-by-employee-number

  • Documentation scope: lambda-complex-sync-no-packages

Synchronous Lambda Complex Rule

This API is documented as a synchronous Lambda complex no-package API. API Gateway waits for the Lambda result and returns the final Lambda response.

Description

Retrieves the employee’s bounded user/admin role assignments, rejecting duplicate role types and performing no writes.

Payload Example

{
  "employee_number": "10000"
}

Payload Schema

{
  "root": {
    "type": "M",
    "required": true,
    "attributes": {
      "employee_number": {
        "type": "S",
        "required": true,
        "pattern": "^[0-9]{5}$",
        "min_length": 5,
        "max_length": 5
      }
    }
  }
}

Response Schema

{
  "root": {
    "type": "M",
    "required": true,
    "attributes": {
      "is_accepted": {
        "type": "BOOL",
        "required": true
      },
      "is_found": {
        "type": "BOOL",
        "required": true
      },
      "employee_roles_found": {
        "type": "BOOL",
        "required": true
      },
      "can_continue": {
        "type": "BOOL",
        "required": true
      },
      "has_active_roles": {
        "type": "BOOL",
        "required": true
      },
      "employee_number": {
        "type": "S",
        "required": false,
        "pattern": "^[0-9]{5}$",
        "min_length": 5,
        "max_length": 5
      },
      "employee_id": {
        "type": "S",
        "required": false,
        "format": "uuid",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
      },
      "domain_id": {
        "type": "S",
        "required": false,
        "format": "uuid",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
      },
      "role_count": {
        "type": "N",
        "required": true,
        "integer": true,
        "minimum": 0,
        "maximum": 2
      },
      "active_role_count": {
        "type": "N",
        "required": true,
        "integer": true,
        "minimum": 0,
        "maximum": 2
      },
      "roles": {
        "type": "L",
        "required": true,
        "items": {
          "type": "M",
          "required": true,
          "additional_properties": false,
          "attributes": {
            "employee_role_id": {
              "type": "S",
              "required": true,
              "format": "uuid",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            },
            "domain_id": {
              "type": "S",
              "required": true,
              "format": "uuid",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            },
            "employee_id": {
              "type": "S",
              "required": true,
              "format": "uuid",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            },
            "role_id": {
              "type": "S",
              "required": true,
              "format": "uuid",
              "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
            },
            "employee_number": {
              "type": "S",
              "required": true,
              "pattern": "^[0-9]{5}$",
              "min_length": 5,
              "max_length": 5
            },
            "role_type": {
              "type": "S",
              "required": true,
              "pattern": "^(user|admin)$",
              "enum": [
                "user",
                "admin"
              ]
            },
            "role_name": {
              "type": "S",
              "required": true,
              "pattern": "^[A-Za-z0-9 .,'_-]{1,120}$",
              "min_length": 1,
              "max_length": 120
            },
            "role_description": {
              "type": "S",
              "required": true,
              "min_length": 1,
              "max_length": 500
            },
            "is_active": {
              "type": "BOOL",
              "required": true
            },
            "created": {
              "type": "S",
              "required": true,
              "format": "date-time"
            },
            "updated": {
              "type": "S",
              "required": true,
              "format": "date-time"
            }
          }
        },
        "max_items": 2
      },
      "message_type": {
        "type": "S",
        "required": true
      },
      "message": {
        "type": "S",
        "required": true
      },
      "next_action": {
        "type": "S",
        "required": true
      },
      "operation": {
        "type": "S",
        "required": true
      },
      "status_code": {
        "type": "N",
        "required": true,
        "integer": true,
        "minimum": 100,
        "maximum": 599
      },
      "failure_code": {
        "type": "S",
        "required": false
      },
      "failure_reason": {
        "type": "S",
        "required": false
      }
    }
  }
}

CMD curl

curl.exe -X GET "https://api.jefoffice.com/one/complex-sync-no-packages/jef-one-get-employee-role-by-employee-number"

PowerShell curl

curl.exe -X GET "https://api.jefoffice.com/one/complex-sync-no-packages/jef-one-get-employee-role-by-employee-number"