두개있던 when, addIfNotNull 숨겨져 있던 if 하나를 if-then-else 하나로 바꿈.


걍 location 있으면 location 체크한 후 거기 관련된 핸들러 콜하고 업데이트 할 거 하는 거고

없으면 걍 핸들러 콜하고 끗 ㅎㅎ


옆에서 보고 있던 생키들이 걍 아무말도 못하고 있길래 잽싸게 짐꾸려서 조금 일찍 퇴근함. 개들 아마 나 가고 나서도 어떻게 하면 저런식으로 가능할까 고민하다가 퇴근했을 듯



handleWithLocation(req, location)

let reason = validateLocation (location) 

    when reason

    throw "Invalid location ..."


    let newReq = add(req, :x-current-location, location)

        handleResult = handler(newReq)


        updatePathAccumulator (req, location)


        handleResult



let location = header AND selectKeys(header location-keys)

    newReq = addIfNotNull(req, :avaliability, getAvaliablity(header))                    + 

    if (location == NIL OR location = {})

       handler (newReq)

    else

       handleWithLocation(newReq, location)