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

{
  "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

{
  "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

Query Parameters

{
  "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

Headers

{
  "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

Request Body

{
  "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

Headers

{
  "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

Headers

Request Body

{
  "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

Query Parameters

Headers

{
  "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

Query Parameters

Headers

{
  "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

Headers

Request Body

{
  "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

Headers

(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

Headers

{
    "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

Headers

Request Body

{
    "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