Actions prompt requestFn, responseErrorFn 예제

valueFromPrompt 사용시 requestFn과 responseErrorFn 사용 예제를 공유드립니다.

관련하여 궁금하신점이 있거나 도움이 필요하시면 말씀해주세요.



image

    selectOptions:
      enabled: true
    actions:
      - label: 데이터 추가
        placement: left top
        button:
          type: success
        type: query
        resource: mysql.qa
        sqlType: insert
        confirm: true
        toast: 데이터가 성공적으로 추가되었습니다.
        reloadAfterSubmit: true
        resetAfterSubmit: true
        forEach: true
        sql: >
          replace into properties3
            (id, name, address, code1, code2, hero_image_url, memo, created_at)
          values
            (:id, :name, :address, :code1, :code2, :hero_image_url, :memo, NOW());
        responseErrorFn: |
          if (row?.error?.sqlMessage) {
            return `요청 처리 중 에러가 발생했습니다. ${row.error.sqlMessage}`;
          }
          //return false
          return '알 수 없는 에러가 발생했습니다.';
        requestFn: |
          const memoParam = params.find(e => e.key === 'memo');

          // `memo` 값 검증
          if (!memoParam || !memoParam.value || memoParam.value.trim() === '') {
            throw new Error('메모를 입력하세요.'); // 요청 중단 및 에러 메시지 표시
          }

          return true;

        params:
          - key: id
            label: ID
            valueFromSelectedRows: true
          - key: name
            label: 이름
            valueFromSelectedRows: true
          - key: address
            label: 주소
            valueFromSelectedRows: true
          - key: code1
            label: 코드1
            valueFromSelectedRows: true
          - key: code2
            label: 코드2
            valueFromSelectedRows: true
          - key: hero_image_url
            label: 히어로 이미지 URL
            valueFromSelectedRows: true

          - key: memo
            label: 메모
            valueFromPrompt: true
            promptText: 메모를 입력하세요.