1. JavaScript / Говнокод #22087

    −49

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    function checkAccess(options, a, b) {
      const access = this.modules.access
      for (let key in options) {
        const decorator = access[key]
        if (decorator) {
          try {
            const v = decorator.call(this, options[key], a, b)
            if (v) {
              return v
            }
          }
          catch (error) {
            error.decorator = key
            return {
              code: 500,
              error
            }
          }
        }
        else {
          return {
            code: 500,
            error: {
              decorator: key,
              message: 'No such decorator'
            }
          }
        }
      }
    }
    
    function callAction(self, module, actionName, a, b) {
      const action = module[actionName]
      if (action instanceof Function) {
        return checkAccess.call(self, module.$call, a, b)
          || checkAccess.call(self, module['$' + actionName], a, b)
          || action.call(self, a, b)
      }
      else {
        throw new Error('No such action: ' + actionName)
      }
    }

    Вместо декораторов...

    Запостил: kissarat, 30 Января 2017

    Комментарии (3) RSS

    • return {
                code: 500,
                error
              }

      Щито?
      Ответить
      • Массив вернули.

        Упс. Видимо, просто забыли скопипастить (см. строку 23).
        Ответить
    • Потом ее перевернули на живот, и стали трахать в попу, снова один за другим, матерясь и нанося удар за ударом.
      Ответить

    Добавить комментарий