Comunidade

Resumo

API responsável por criar as comunidades onde as ações de engajamento serão realizadas, uma comunidade é composta por um grupo de pessoas que passam a ter acesso ao adquirir uma NFT.

Uma empresa pode ter mais de uma comunidade e cada comunidade poderá ter mais de uma coleção.

Como funciona

Uma vez que o usuário foi cadastrado, ele poderá criar ou participar de comunidades. O que ele pode realizar na comunidade vai depender do nível de permissão.

Objeto Community

Exemplo de Objeto de Comunidade
{
  "id": "8798wdefs",
  "companyId": "a4wed86fwd",
  "name": "ABC Community",
  "description": "ABC Community description",
  "email": "community_support@email.com",
  "status": "active",
  "users": {
    "community_admin":["8974efs"],
    "community_moderator":["fg74wea", "khuf132"],
    "members":["ioyu132", "khj789", "0w3rq13"]
  },
  "tags": ["ambiental", "arte", "empreeendedorismo"]
}

Endpoints

Comunidade

  • GET /v1/communities

  • GET /v1/communities/:communityId

  • GET /v1/communities/:communityId/collections

Gestão de dados da Comunidade

  • GET /v1/communities/manage

  • POST /v1/communities/manage

  • GET /v1/communities/:communityId/manage

  • PATCH /v1/communities/:communityId/manage

  • GET /v1/communities/:communityId/collections/manage

Gestão de permissões da Comunidade

  • GET /v1/communities/:communityId/users-roles/manage

  • POST /v1/communities/:communityId/users-roles/manage

  • DELETE /v1/communities/:communityId/users-roles/:userId/manage

  • GET /v1/communities/:communityId/users-roles/:userId/manage

  • PATCH /v1/communities/:communityId/users-roles/:userId/manage

Comunidades

Lista as comunidades públicas

GET https://goblockchain.io/gotokens-api/v1/communities

Nível de permissionamento necessário: qualquer

Query Parameters

NameTypeDescription

name

String

Nome da Comunidade

limit

String

Limite de resultados na busca

offset

String

Quantidade de resultados para avançar da busca

companyId

String

ID da Empresa

tags

Array

Tags da Comunidade

{
  "communities": [
    {
      "id": "87wda9",
      "name": "Community A",
      "description": "Community A description",
      "tags": ["ambiental", "arte", "empreeendedorismo"],
    },
    {
      "id": "123egroo",
      "name": "Community B",
      "description": "Community B description",
      "tags": ["ambiental", "arte", "empreeendedorismo"],
    },
    {
      "id": "89sef7w",
      "name": "Community C",
      "description": "Community C description"
      "tags": ["ambiental", "arte", "empreeendedorismo"],
    },
    {
      "id": "ase6w58f4",
      "name": "Community D",
      "description": "Community D description",
      "tags": ["ambiental", "arte", "empreeendedorismo"],
    },
  ]
}
    

Lista as informações públicas de uma determinada comunidade

GET https://goblockchain.io/gotokens-api/v1/communities/:communityId

Nível de permissionamento necessário: qualquer

Path Parameters

NameTypeDescription

communityId*

String

ID da Comunidade

{
  "id": "89sef7w",
  "name": "Community C",
  "description": "Community C description",
  "email": "community_support@email.com",
  "tags": ["ambiental", "arte", "empreeendedorismo"]
}

Lista coleções públicas associadas à uma comunidade

GET https://goblockchain.io/gotokens-api/v1/communities/:communityId/collections

Nível de permissionamento necessário: qualquer

Path Parameters

NameTypeDescription

communityId*

String

ID da Comunidade

Query Parameters

NameTypeDescription

name

String

Nome da Coleção

collectionId

String

ID da Coleção

limit

String

Limite de resultados na busca

offset

String

Quantidade de resultados para avançar da busca

contractAddress

String

Endereço de contrato da Coleção

collectionType

String

Tipo de contrato da Coleção

network

String

Rede do contrato da Coleção

mainCurrency

String

Moeda principal da Coleção

tags

Array

Tags da Coleção

{
  "communityId": "htf849",
  "communityName": "ABC Community",
  "collections": [
    {
      "id": "kliu78",
      "name": "Collection A",
      "description": "Collection A description",
      "contractAddress": "0x789546132",
      "network" : "polygon",
      "collectionType": "sale",
      "mainCurrency": "matic",
      "tags": ["ambiental", "arte", "empreeendedorismo"]
    },
    {
      "id": "vxrg35",
      "name": "Collection B",
      "description": "Collection B description",
      "contractAddress": "0x757496132",
      "network" : "ethereum",
      "collectionType": "auction",
      "mainCurrency": "eth",
      "tags": ["arte"]
    },
    {
      "id": "fe129a",
      "name": "Collection C",
      "description": "Collection C description",
      "contractAddress": "0x78567489",
      "network" : "ethereum",
      "collectionType": "reverse_auction",
      "mainCurrency": "usd",
      "tags": ["empreeendedorismo"]
    },
    {
      "id": "0wgeft3",
      "name": "Collection D",
      "description": "Collection D description",
      "contractAddress": "0x80787965",
      "network" : "polygon",
      "collectionType": "airdrop",
      "mainCurrency": "brl",
      "tags": ["esportes"]
    }
  ]
}

Gestão de Comunidades

(JWT) Lista as comunidades que o usuário logado tem acesso

GET https://goblockchain.io/gotokens-api/v1/communities/manage

Nível de permissionamento necessário: company_admin, company_moderator, community_admin, community_moderator, member

Query Parameters

NameTypeDescription

name

String

Nome da Comunidade

id

String

ID da Comunidade

limit

String

Limite de resultados na busca

offset

String

Quantidade de resultados para avançar da busca

tags

Array

Tags da Comunidade

Headers

NameTypeDescription

authorization*

Bearer

JWT

{
  "communities": [
    {
      "id": "87wda9",
      "name": "Community A",
      "description": "Community A description",
      "tags": ["ambiental", "arte", "empreeendedorismo"]
      "role": "company_moderator"
    },
    {
      "id": "123egroo",
      "name": "Community B",
      "description": "Community B description",
      "tags": ["empreeendedorismo"]
      "role": "community_moderator"
    },
    {
      "id": "89sef7w",
      "name": "Community C",
      "description": "Community C description",
      "tags": ["arte"]
      "role": "member"
    },
    {
      "id": "ase6w58f4",
      "name": "Community D",
      "description": "Community D description",
      "tags": ["esportes"]
      "role": "member"
    },
  ]
}
    

(JWT) Cria uma comunidade com as informações dadas

POST https://goblockchain.io/gotokens-api/v1/communities/manage

Nível de permissionamento necessário: company_admin, company_moderator, community_admin

Headers

NameTypeDescription

authorization*

Bearer

JWT

Request Body

NameTypeDescription

name*

String

Nome da Comunidade

email*

String

E-mail da Comunidade

description*

String

Descrição da Comunidade

companyId

String

Identificador da Empresa

tags

Array

Tags da Comunidade

{
  "id": "htr979",
  "name": "Community E",
  "description": "Community E description",
  "email": "community_support@email.com",
  "tags": ["ambiental", "arte", "empreeendedorismo"]
  "status": "active"
}

(JWT) Lista as informações de uma determinada comunidade

GET https://goblockchain.io/gotokens-api/v1/communities/:communityId/manage

Nível de permissionamento necessário: company_admin, company_moderator, community_admin, community_moderator, member

Path Parameters

NameTypeDescription

communityId*

String

ID da Comunidade

Headers

NameTypeDescription

authorization*

Bearer

JWT

{
  "id": "89sef7w",
  "name": "Community C",
  "description": "Community C description",
  "email": "community_support@email.com",
  "tags": ["ambiental", "arte", "empreeendedorismo"]
  "role": "member"
}

(JWT) Edita uma comunidade com as informações dadas

PATCH https://goblockchain.io/gotokens-api/v1/communities/:communityId/manage

Nível de permissionamento necessário: company_admin, company_moderator, community_admin, community_moderator

Path Parameters

NameTypeDescription

communityId

String

ID da Comunidade

Headers

NameTypeDescription

authorization*

Bearer

JWT

Request Body

NameTypeDescription

name

String

Nome da Comunidade

email

String

E-mail da Comunidade

description

String

Descrição da Comunidade

tags

Array

Tags da Comunidade

{
  "id": "htr979",
  "name": "Community E",
  "description": "Community E description",
  "email": "community_support@email.com",
  "status": "active"
}

(JWT) Lista coleções associadas à uma comunidade

GET https://goblockchain.io/gotokens-api/v1/communities/:communityId/collections/manage

Nível de permissionamento necessário: company_admin, company_moderator, community_admin, community_moderator, member

Path Parameters

NameTypeDescription

communityId*

String

ID da Comunidade

Query Parameters

NameTypeDescription

name

String

Nome da Coleção

id

String

ID da Coleção

limit

String

Limite de resultados na busca

offset

String

Quantidade de resultados para avançar da busca

contractAddress

String

Endereço de contrato da Coleção

collectionType

String

Tipo de contrato da Coleção

network

String

Rede do contrato da Coleção

mainCurrency

String

Moeda principal da Coleção

tags

Array

Tags da Coleção

Headers

NameTypeDescription

authorization*

Bearer

JWT

{
  "communityId": "htf849",
  "communityName": "ABC Community",
  "collections": [
    {
      "id": "kliu78",
      "name": "Collection A",
      "description": "Collection A description",
      "contractAddress": "0x789546132",
      "network" : "polygon",
      "collectionType": "sale",
      "mainCurrency": "matic"
      "tags": ["ambiental", "arte", "empreeendedorismo"]
    },
    {
      "id": "vxrg35",
      "name": "Collection B",
      "description": "Collection B description",
      "contractAddress": "0x757496132",
      "network" : "ethereum",
      "collectionType": "auction",
      "mainCurrency": "eth",
      "tags": ["arte"]
    },
    {
      "id": "fe129a",
      "name": "Collection C",
      "description": "Collection C description",
      "contractAddress": "0x78567489",
      "network" : "ethereum",
      "collectionType": "reverse_auction",
      "mainCurrency": "usd",
      "tags": ["empreeendedorismo"]
    },
    {
      "id": "0wgeft3",
      "name": "Collection D",
      "description": "Collection D description",
      "contractAddress": "0x80787965",
      "network" : "polygon",
      "collectionType": "airdrop",
      "mainCurrency": "brl",
      "tags": ["esportes"]
    }
  ]
}

Gestão de permissões da Comunidade

(JWT) Lista usuários e suas permissões associadas à uma comunidade

GET https://goblockchain.io/gotokens-api/v1/communities/:communityId/users-roles/manage

Nível de permissionamento necessário: company_admin, company_moderator, community_admin, community_moderator

Path Parameters

NameTypeDescription

communityId*

String

ID da Comunidade

Query Parameters

NameTypeDescription

name

String

Nome do Usuário

email

String

E-mail do Usuário

role

String

Nível de acesso do Usuário àquela Comunidade

id

String

ID do Usuário

limit

String

Limite de resultados na busca

offset

String

Quantidade de resultados para avançar da busca

Headers

NameTypeDescription

authorization*

Bearer

JWT

{
  "communityId": "htf849",
  "communityName": "ABC Community",
  "users": {
    "company_admin":[
      {
        "id": "pudt992",
        "name": "User A",
        "email": "user_a@email.com",
      }
    ],
    "company_moderator":[
      {
        "id": "321ggd",
        "name": "User D",
        "email": "user_d@email.com"
      },
      {
        "id": "456jse",
        "name": "User E",
        "email": "user_e@email.com"
      }
    ],
     "community_admin":[
      {
        "id": "8974efs",
        "name": "User F",
        "email": "user_f@email.com"
      }
    ],
     "community_moderator":[
      {
        "id": "fg74wea",
        "name": "User G",
        "email": "user_g@email.com"
      },
      {
        "id": "khuf132",
        "name": "User H",
        "email": "user_h@email.com"
      }
    ],
     "members":[
      {
        "id": "ioyu132",
        "name": "User I",
        "email": "user_i@email.com"
      }
      ,{
        "id": "khj789",
        "name": "User J",
        "email": "user_j@email.com"
      },
      {
        "id": "0w3rq13",
        "name": "User K",
        "email": "user_k@email.com"
      }
    ]
  }
}

(JWT) Associa usuários à um nível de permissionamento em uma comunidade

POST https://goblockchain.io/gotokens-api/v1/communities/:communityId/users-roles/manage

Nível de permissionamento necessário: company_admin, company_moderator, community_admin

Path Parameters

NameTypeDescription

communityId*

String

ID da Comunidade

Headers

NameTypeDescription

authorization*

Bearer

JWT

Request Body

NameTypeDescription

id*

String

ID do Usuário

role*

String

Nível de acesso do Usuário àquela Comunidade

{
  "community": {
    "id": "htf849"
    "name": "Community B",
    "email": "community_b@email.com"
  },
  "user": {
    "id" : "486daw",
    "name": "User B",
    "email": "user_b@email.com"
  },
  "role": "community_moderator"
}

(JWT) Remove a associação de um usuário à uma comunidade

DELETE https://goblockchain.io/gotokens-api/v1/communities/:communityId/users-roles/:userId/manage

Nível de permissionamento necessário: company_admin, company_moderator, community_admin

Path Parameters

NameTypeDescription

communityId*

String

ID da Comunidade

userId*

String

ID do Usuário

Headers

NameTypeDescription

authorization*

Bearer

JWT

(JWT) Lista dados e permissões que um usuário tem em uma comunidade

GET https://goblockchain.io/gotokens-api/v1/communities/:communityId/users-roles/:userId/manage

Nível de permissionamento necessário: company_admin, company_moderator, community_admin, community_moderator

Path Parameters

NameTypeDescription

userId*

String

ID do Usuário

communityId*

String

ID da Comunidade

Headers

NameTypeDescription

authorization*

Bearer

JWT

{
    "community": {
        "id": "htf849"
        "name": "Community B",
        "email": "community_b@email.com"
    },
    "user": {
        "id" : "486daw",
        "name": "User B",
        "email": "user_b@email.com"
    },
    "role": "community_moderator"
}

(JWT) Atualiza permissões que um usuário tem em uma comunidade

PATCH https://goblockchain.io/gotokens-api/v1/communities/:communityId/users-roles/:userId/manage

Nível de permissionamento necessário: company_admin

Path Parameters

NameTypeDescription

userId*

String

ID do Usuário

communityId*

String

ID da Comunidade

Headers

NameTypeDescription

authorization*

Bearer

JWT

Request Body

NameTypeDescription

role*

String

Nível de acesso do Usuário àquela Comunidade

{
    "community": {
        "id": "htf849"
        "name": "Community B",
        "email": "community_b@email.com"
    },
    "user": {
        "id" : "486daw",
        "name": "User B",
        "email": "user_b@email.com"
    },
    "role": "community_admin"
}

Last updated