responseErrorFn 관련 사용법

API, 쿼리 실행후 에러 응답시 responseErrorFn을 통해 여러 처리가 가능합니다.

관련 기능과 정책은 아래와 같습니다.

responseErrorFn

  • row에 하위 요소들로 에러원본 데이터 접근가능
  • throw하면 toast 표시 (실패)
  • return 문자열하면 공간에 표시
  • return false 하면 아무것도 하지 않음 (에러표시안하거나 따로 직접표시)
  • return 하면 기존처럼 표기 (stopPropagation)
  • 조회는 공간에 “에러 JSON”
  • 수정은 “다시 시도해주세요 alert”
    responseErrorFn: |
      console.log(row)
      console.log(row.error)
      console.log(row.error.data)
      console.log(row.error.message)
      console.log(row.error.status)
      console.log(row.error.statusText)

      // throw new Error('샛별배송 23:00 이후로 재고 변경이 일시적으로 불가능합니다.')

      return '에러 메시지 입니다. 블록 공간에 표시'

      // toast('직접 띄우기')
      // alert('직접 띄우기')

API YAML 예제

menus:
- path: pages/qP_aiV
  name: 새로운 메뉴
pages:
- path: pages/qP_aiV
  title: 제목
  subtitle: 내용
  blocks:
  - type: http
    name: 4xx POST
    axios:
      url: https://httpbin.selectfromuser.com/status/401
      method: POST
    # params:
    #   - key: t
    # responseErrorFn: |
    #   console.log(row)
    #   console.log(row.error)
    #   console.log(row.error.data)
    #   console.log(row.error.message)
    #   console.log(row.error.status)
    #   console.log(row.error.statusText)

    #   // throw new Error('샛별배송 23:00 이후로 재고 변경이 일시적으로 불가능합니다.')

    #   return '에러 메시지 입니다. 블록 공간에 표시'

    #   // toast('직접 띄우기')
    #   // alert('직접 띄우기')

    #   return false

  - type: http
    name: 4xx GET
    axios:
      url: https://httpbin.selectfromuser.com/status/401
      method: GET
    params:
      - key: t

    responseErrorFn: |
      console.log(row)
      console.log(row.error)
      console.log(row.error.data)
      console.log(row.error.message)
      console.log(row.error.status)
      console.log(row.error.statusText)

      // throw new Error('샛별배송 23:00 이후로 재고 변경이 일시적으로 불가능합니다.')

      // return '에러 메시지 입니다. 블록 공간에 표시'

      // toast('직접 띄우기')
      // alert('직접 띄우기')

      // return false

쿼리 YAML 예제

  - type: query
    name: QUERY ERROR
    resource: mysql.qa
    sql: SELECT N()
    # sqlType: insert
    sqlType: select
    params:
      - key: t

    responseErrorFn: |
      // 디비마다 sqlMessage 부분이 다를수있음! 

      return `에러 메시지 입니다. 블록 공간에 표시 ${row.error.sqlMessage}`

관련하여 도움이 필요하시거나 기능 제안이 있다면 말씀해주세요.
감사합니다.