# Ajuda com o design de plugin de integração personalizado

**URL:** <https://meta.discourse.org/t/help-designing-custom-integration-plugin/133520>\
**Category:** Development\
**Created:** [15 Novembro , 2019 21:17 UTC](https://meta.discourse.org/t/help-designing-custom-integration-plugin/133520 "2019-11-15T21:17:30Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [15 Novembro , 2019 21:59 UTC](https://meta.discourse.org/t/help-designing-custom-integration-plugin/133520/2 "2019-11-15T21:59:58Z")

</div>

Assim que você tiver o identificador do Codeforces deles em um `user_custom_field`, será bastante fácil atualizar qualquer coisa que desejar no perfil deles (atribuir grupos, inserir quaisquer dados de perfil do Codeforces em campos personalizados do usuário, e assim por diante) quando eles fizerem login.

Algo como:

```ruby
after_initialize do
  DiscourseEvent.on(:user_logged_in) do |user|
    # obter dados do Codeforces
      if codeforce_rating > 1400
          group = Group.find_by(name: group_1400)
          if group
            gu = GroupUser.find_by(group_id: group.id, user_id: user.id)
            GroupUser.create(group_id: group.id, user_id: user.id) unless gu
          end
        end
      end

  end

end

```

Dessa forma, é realmente fácil e você atualizará os dados apenas para pessoas que estão realmente ativas na comunidade.

---

_[View the full topic](https://meta.discourse.org/t/help-designing-custom-integration-plugin/133520)._
