pinclub/pinclub

View on GitHub
controllers/board.js

Summary

Maintainability
F
6 days
Test Coverage

File board.js has 356 lines of code (exceeds 250 allowed). Consider refactoring.
Open

var _ = require('lodash');
var Board = require('../proxy').Board;
var BoardCollect = require('../proxy').BoardCollect;
var Topic = require('../proxy').Topic;
var User = require('../proxy').User;
Severity: Minor
Found in controllers/board.js - About 4 hrs to fix

    Function show has 61 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

    exports.show = function (req, res, next) {
        req.checkParams({
            'board_id': {
                notEmpty: {
                    options: [true],
    Severity: Major
    Found in controllers/board.js - About 2 hrs to fix

      Function collect has 58 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

      exports.collect = function (req, res, next) {
          var board_id = req.body.id;
      
          Board.getBoard(board_id, function (err, board) {
              if (err) {
      Severity: Major
      Found in controllers/board.js - About 2 hrs to fix

        Function update has 48 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

        function update (req, res, cb) {
            req.checkBody({
                'title': {
                    notEmpty: {
                        options: [true],
        Severity: Minor
        Found in controllers/board.js - About 1 hr to fix

          Function index has 41 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

          exports.index = function (req, res, next) {
              var ep = new EventProxy();
              ep.fail(next);
          
              ep.on('user', function (user) {
          Severity: Minor
          Found in controllers/board.js - About 1 hr to fix

            Function create has 41 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

            exports.create = function (req, res, next) {
                req.checkBody({
                    'title': {
                        notEmpty: {
                            options: [true],
            Severity: Minor
            Found in controllers/board.js - About 1 hr to fix

              Function refreshCount has 34 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

              exports.refreshCount = function (req, res, next) {
                  req.checkParams({
                      'id': {
                          notEmpty: {
                              options: [true],
              Severity: Minor
              Found in controllers/board.js - About 1 hr to fix

                Function delete has 31 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                exports.delete = function (req, res, next) {
                    req.checkParams({
                        'board_id': {
                            notEmpty: {
                                options: [true],
                Severity: Minor
                Found in controllers/board.js - About 1 hr to fix

                  Similar blocks of code found in 2 locations. Consider refactoring.
                  Open

                  exports.refreshCount = function (req, res, next) {
                      req.checkParams({
                          'id': {
                              notEmpty: {
                                  options: [true],
                  Severity: Major
                  Found in controllers/board.js and 1 other location - About 1 day to fix
                  controllers/forum.js on lines 148..183

                  Duplicated Code

                  Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                  Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                  When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                  Tuning

                  This issue has a mass of 327.

                  We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                  The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                  If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                  See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                  Refactorings

                  Further Reading

                  Similar blocks of code found in 2 locations. Consider refactoring.
                  Open

                  exports.edit = function (req, res, next) {
                      update(req, res, function(err) {
                          if (err) {
                              return res.status(400).json({
                                  success: false,
                  Severity: Major
                  Found in controllers/board.js and 1 other location - About 2 hrs to fix
                  controllers/board.js on lines 277..287

                  Duplicated Code

                  Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                  Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                  When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                  Tuning

                  This issue has a mass of 93.

                  We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                  The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                  If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                  See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                  Refactorings

                  Further Reading

                  Similar blocks of code found in 2 locations. Consider refactoring.
                  Open

                  exports.adminEdit = function (req, res, next) {
                      update(req, res, function(err) {
                          if (err) {
                              return res.status(400).json({
                                  success: false,
                  Severity: Major
                  Found in controllers/board.js and 1 other location - About 2 hrs to fix
                  controllers/board.js on lines 264..274

                  Duplicated Code

                  Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                  Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                  When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                  Tuning

                  This issue has a mass of 93.

                  We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                  The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                  If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                  See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                  Refactorings

                  Further Reading

                  Similar blocks of code found in 2 locations. Consider refactoring.
                  Open

                                      User.getUserById(req.session.user._id, function (err, user) {
                                          if (err) {
                                              return next(err);
                                          }
                                          user.collect_board_count -= 1;
                  Severity: Major
                  Found in controllers/board.js and 1 other location - About 2 hrs to fix
                  controllers/topic.js on lines 455..462

                  Duplicated Code

                  Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                  Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                  When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                  Tuning

                  This issue has a mass of 81.

                  We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                  The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                  If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                  See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                  Refactorings

                  Further Reading

                  Similar blocks of code found in 3 locations. Consider refactoring.
                  Open

                      req.checkBody({
                          'title': {
                              notEmpty: {
                                  options: [true],
                                  errorMessage: 'Board 名称不能为空'
                  Severity: Major
                  Found in controllers/board.js and 2 other locations - About 2 hrs to fix
                  controllers/board.js on lines 123..140
                  controllers/forum.js on lines 7..24

                  Duplicated Code

                  Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                  Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                  When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                  Tuning

                  This issue has a mass of 78.

                  We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                  The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                  If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                  See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                  Refactorings

                  Further Reading

                  Similar blocks of code found in 3 locations. Consider refactoring.
                  Open

                      req.checkBody({
                          'title': {
                              notEmpty: {
                                  options: [true],
                                  errorMessage: 'Board 名称不能为空'
                  Severity: Major
                  Found in controllers/board.js and 2 other locations - About 2 hrs to fix
                  controllers/board.js on lines 216..233
                  controllers/forum.js on lines 7..24

                  Duplicated Code

                  Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                  Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                  When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                  Tuning

                  This issue has a mass of 78.

                  We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                  The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                  If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                  See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                  Refactorings

                  Further Reading

                  Similar blocks of code found in 2 locations. Consider refactoring.
                  Open

                              _.forEach(boards, function(board) {
                                  Topic.getImagesByQuery({
                                      board: board.id
                                  }, {
                                      limit: 4
                  Severity: Major
                  Found in controllers/board.js and 1 other location - About 2 hrs to fix
                  controllers/user.js on lines 109..118

                  Duplicated Code

                  Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                  Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                  When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                  Tuning

                  This issue has a mass of 76.

                  We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                  The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                  If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                  See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                  Refactorings

                  Further Reading

                  Similar blocks of code found in 2 locations. Consider refactoring.
                  Open

                              User.getUserById(board.user_id, function (err, user) {
                                  user.score -= 5;
                                  user.board_count -= 1;
                                  user.save();
                                  req.session.user = req.user = user;
                  Severity: Major
                  Found in controllers/board.js and 1 other location - About 1 hr to fix
                  controllers/board.js on lines 252..258

                  Duplicated Code

                  Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                  Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                  When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                  Tuning

                  This issue has a mass of 74.

                  We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                  The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                  If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                  See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                  Refactorings

                  Further Reading

                  Similar blocks of code found in 2 locations. Consider refactoring.
                  Open

                              User.getUserById(req.session.user.id, function (err, user) {
                                  user.score += 5;
                                  user.board_count += 1;
                                  user.save();
                                  req.session.user = req.user = user;
                  Severity: Major
                  Found in controllers/board.js and 1 other location - About 1 hr to fix
                  controllers/board.js on lines 203..209

                  Duplicated Code

                  Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                  Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                  When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                  Tuning

                  This issue has a mass of 74.

                  We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                  The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                  If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                  See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                  Refactorings

                  Further Reading

                  Similar blocks of code found in 2 locations. Consider refactoring.
                  Open

                                  User.getUserById(req.session.user._id, function (err, user) {
                                      if (err) {
                                          return next(err);
                                      }
                                      user.collect_board_count += 1;
                  Severity: Major
                  Found in controllers/board.js and 1 other location - About 1 hr to fix
                  controllers/topic.js on lines 423..429

                  Duplicated Code

                  Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                  Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                  When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                  Tuning

                  This issue has a mass of 66.

                  We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                  The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                  If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                  See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                  Refactorings

                  Further Reading

                  Identical blocks of code found in 2 locations. Consider refactoring.
                  Open

                      req.checkParams({
                          'board_id': {
                              notEmpty: {
                                  options: [true],
                                  errorMessage: 'Board Id 不能为空'
                  Severity: Minor
                  Found in controllers/board.js and 1 other location - About 55 mins to fix
                  controllers/board.js on lines 58..69

                  Duplicated Code

                  Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                  Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                  When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                  Tuning

                  This issue has a mass of 54.

                  We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                  The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                  If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                  See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                  Refactorings

                  Further Reading

                  Identical blocks of code found in 2 locations. Consider refactoring.
                  Open

                      req.checkParams({
                          'board_id': {
                              notEmpty: {
                                  options: [true],
                                  errorMessage: 'Board Id 不能为空'
                  Severity: Minor
                  Found in controllers/board.js and 1 other location - About 55 mins to fix
                  controllers/board.js on lines 141..152

                  Duplicated Code

                  Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                  Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                  When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                  Tuning

                  This issue has a mass of 54.

                  We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                  The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                  If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                  See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                  Refactorings

                  Further Reading

                  Similar blocks of code found in 2 locations. Consider refactoring.
                  Open

                                  if (!!req.session.user){
                                      isCreator = (req.session.user.id == creator.id);
                                  }
                  Severity: Minor
                  Found in controllers/board.js and 1 other location - About 35 mins to fix
                  controllers/user.js on lines 545..547

                  Duplicated Code

                  Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                  Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                  When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                  Tuning

                  This issue has a mass of 46.

                  We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                  The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                  If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                  See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                  Refactorings

                  Further Reading

                  There are no issues that match your filters.

                  Category
                  Status