nuts-foundation/nuts-event-octopus

View on GitHub

Showing 18 of 18 total issues

File events.go has 538 lines of code (exceeds 500 allowed). Consider refactoring.
Open

/*
 * Nuts event octopus
 * Copyright (C) 2019. Nuts community
 *
 * This program is free software: you can redistribute it and/or modify
Severity: Minor
Found in pkg/events.go - About 2 hrs to fix

    EventOctopus has 23 methods (exceeds 20 allowed). Consider refactoring.
    Open

    type EventOctopus struct {
        Name       string
        Config     EventOctopusConfig
        configOnce sync.Once
        stanServer *natsServer.StanServer
    Severity: Minor
    Found in pkg/events.go - About 2 hrs to fix

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

      func (w *ServerInterfaceWrapper) GetEventByExternalId(ctx echo.Context) error {
          var err error
          // ------------- Path parameter "external_id" -------------
          var externalId string
      
      
      Severity: Major
      Found in api/generated.go and 1 other location - About 1 hr to fix
      api/generated.go on lines 95..108

      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 145.

      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

      func (w *ServerInterfaceWrapper) GetEvent(ctx echo.Context) error {
          var err error
          // ------------- Path parameter "uuid" -------------
          var uuid string
      
      
      Severity: Major
      Found in api/generated.go and 1 other location - About 1 hr to fix
      api/generated.go on lines 79..92

      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 145.

      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

      Method EventOctopus.startSubscribers has 56 lines of code (exceeds 50 allowed). Consider refactoring.
      Open

      func (octopus *EventOctopus) startSubscribers() error {
          logrus.Tracef("Connecting to Stan-Streaming server @ nats://localhost:%d", octopus.Config.NatsPort)
      
          sc, err := octopus.client(ClientID)
          if err != nil {
      Severity: Minor
      Found in pkg/events.go - About 1 hr to fix

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

        func (w Wrapper) GetEvent(ctx echo.Context, uuid string) error {
            event, err := w.Eo.GetEvent(uuid)
        
            if err != nil {
                return fmt.Errorf("Error while fetching event from DB: %v", err)
        Severity: Minor
        Found in api/api.go and 1 other location - About 55 mins to fix
        api/api.go on lines 67..81

        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 127.

        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

        func (w Wrapper) GetEventByExternalId(ctx echo.Context, externalId string) error {
            event, err := w.Eo.GetEventByExternalID(externalId)
        
            if err != nil {
                return fmt.Errorf("Error while fetching event from DB: %v", err)
        Severity: Minor
        Found in api/api.go and 1 other location - About 55 mins to fix
        api/api.go on lines 50..64

        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 127.

        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

        func (octopus *EventOctopus) GetEvent(uuid string) (*Event, error) {
            event := &Event{}
        
            err := octopus.Db.Debug().Where("uuid = ?", uuid).First(&event).Error
        
        
        Severity: Minor
        Found in pkg/events.go and 1 other location - About 55 mins to fix
        pkg/events.go on lines 680..694

        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 124.

        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

        func (octopus *EventOctopus) GetEventByExternalID(externalID string) (*Event, error) {
            event := &Event{}
        
            err := octopus.Db.Debug().Where("external_id = ?", externalID).First(&event).Error
        
        
        Severity: Minor
        Found in pkg/events.go and 1 other location - About 55 mins to fix
        pkg/events.go on lines 663..677

        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 124.

        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

        Method EventOctopus.startSubscribers has 8 return statements (exceeds 4 allowed).
        Open

        func (octopus *EventOctopus) startSubscribers() error {
            logrus.Tracef("Connecting to Stan-Streaming server @ nats://localhost:%d", octopus.Config.NatsPort)
        
            sc, err := octopus.client(ClientID)
            if err != nil {
        Severity: Major
        Found in pkg/events.go - About 50 mins to fix

          Function NewDelayedConsumerSet has 6 arguments (exceeds 4 allowed). Consider refactoring.
          Open

          func NewDelayedConsumerSet(consumeSubject string, publishSubject string, count int, interval time.Duration, exponent int, conn stan.Conn) []*DelayedConsumer {
          Severity: Minor
          Found in pkg/retry.go - About 45 mins to fix

            Method EventOctopus.Start has 7 return statements (exceeds 4 allowed).
            Open

            func (octopus *EventOctopus) Start() error {
                var err error
            
                if octopus.Config.GetMode() != core.ServerEngineMode {
                    return nil
            Severity: Major
            Found in pkg/events.go - About 45 mins to fix

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

              func _1_create_table_eventUpSql() (*asset, error) {
                  bytes, err := _1_create_table_eventUpSqlBytes()
                  if err != nil {
                      return nil, err
                  }
              Severity: Major
              Found in migrations/bindata.go and 2 other locations - About 40 mins to fix
              migrations/bindata.go on lines 91..100
              migrations/bindata.go on lines 131..140

              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 112.

              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

              func _1_create_table_eventDownSql() (*asset, error) {
                  bytes, err := _1_create_table_eventDownSqlBytes()
                  if err != nil {
                      return nil, err
                  }
              Severity: Major
              Found in migrations/bindata.go and 2 other locations - About 40 mins to fix
              migrations/bindata.go on lines 111..120
              migrations/bindata.go on lines 131..140

              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 112.

              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

              func bindataGo() (*asset, error) {
                  bytes, err := bindataGoBytes()
                  if err != nil {
                      return nil, err
                  }
              Severity: Major
              Found in migrations/bindata.go and 2 other locations - About 40 mins to fix
              migrations/bindata.go on lines 91..100
              migrations/bindata.go on lines 111..120

              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 112.

              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

              Function RestoreAsset has 6 return statements (exceeds 4 allowed).
              Open

              func RestoreAsset(dir, name string) error {
                  data, err := Asset(name)
                  if err != nil {
                      return err
                  }
              Severity: Major
              Found in migrations/bindata.go - About 40 mins to fix

                Method EventOctopus.configure has 5 return statements (exceeds 4 allowed).
                Open

                func (octopus *EventOctopus) configure() error {
                    var (
                        err error
                    )
                
                
                Severity: Major
                Found in pkg/events.go - About 35 mins to fix

                  Method EventOctopus.RunMigrations has 5 return statements (exceeds 4 allowed).
                  Open

                  func (octopus *EventOctopus) RunMigrations(db *sql.DB) error {
                      driver, err := sqlite3.WithInstance(db, &sqlite3.Config{})
                  
                      // wrap assets into Resource
                      s := bindata.Resource(migrations.AssetNames(),
                  Severity: Major
                  Found in pkg/events.go - About 35 mins to fix
                    Severity
                    Category
                    Status
                    Source
                    Language