bfocus 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3daefe09e7aa1fed098c71ffdbc8f0b43c020519b72031355aac21a8b16011ed
4
- data.tar.gz: a21b02db9aff17837cf93cc6063b16324e4593382543fa7c1c0eedd032d916a9
3
+ metadata.gz: 7f93ce899d6f0b828abbb48251c0b2899e21203806e65ca1596c69494eaf89db
4
+ data.tar.gz: 75d630e82fce06c4fdfb1ba296bd08793387de045e8eb9ca3a0ba82c96bacbc9
5
5
  SHA512:
6
- metadata.gz: 111b5a2790952c3ba34c11d7d7f8d101b620b3e44b1869730d6663daf97a2f28c27880febb48aca95e3112f41e9159ba5c2174986d7242ad4b242f9ab8ff15c0
7
- data.tar.gz: 8a8ee123b356b52e8c8fbfeded349d168bdad83c39a010e3328b7635a0424e13f5413295e2c991e4a9a82fe3444c3200cc0fbbe471c82132468a548ac02c0e02
6
+ metadata.gz: 535a2dc1a6212586ad0e2132598f4f941fb1dfd038d9f177c0e653cbc45aed3b1032f275debfaafd1fc7ccf26f5ae8261e7fdbf802014c5662b57a8b7f21f9d9
7
+ data.tar.gz: d364b663c8a226ae81c7ec76215bb83314d48c9959097c886a6b87afca55792f45502033a6c813d803c3c10b39886c6041a2a726eb2eee4779d96d51830ab7b4
data/README.md CHANGED
@@ -190,7 +190,10 @@ client.people.upsert("erp-1042", "app-77", access: true) # devolve o acesso
190
190
 
191
191
  - **Nunca duplica.** O e-mail (ou o telefone) acha a pessoa que já chegou por e-mail, pelo widget
192
192
  ou por outro sistema, e ela é **adotada** (ganha o seu `external_id`).
193
- - A mesma pessoa enviada com **outro cliente** é **transferida** para ele.
193
+ - A mesma pessoa enviada com **outro cliente** NÃO é transferida: fica **ligada** também a ele
194
+ (`"linked" => true` na resposta). O cadastro é único e a mesma pessoa circula por vários clientes.
195
+ - **O acesso é do vínculo.** `delete` (e `access: false`) tira o acesso dela NESTE cliente, não nos
196
+ outros: `"unlinked" => true` na resposta quer dizer que ela segue ativa em algum outro.
194
197
  - Como no resto da SDK, só o que você passa muda; `nil` limpa (`phone: nil`).
195
198
  - Campos: `name`, `email`, `phone`, `role`, `access` (pode usar o atendimento), `is_primary`
196
199
  (contato principal), `extra_emails`, `extra_phones`, `custom_fields`, `clear`.
@@ -158,12 +158,21 @@ module Bfocus
158
158
  #
159
159
  # Só os campos informados mudam; `nil` limpa. `custom_fields` (lista de
160
160
  # `{key:, label:, type:, value:, options:}`), quando enviado, **substitui** a lista inteira.
161
+ #
162
+ # `kind` é o tipo do CONTRATANTE: `"pj"` (empresa) ou `"pf"` (pessoa física). Não enviando,
163
+ # o bFocus deduz do documento. `legal_name` (razão social), `state_registration` e
164
+ # `municipal_registration` são de PJ; `id_document` (RG), de PF.
161
165
  # @return [Hash] o cliente.
162
- def upsert(external_id, name: UNSET, document: UNSET, email: UNSET, phone: UNSET,
166
+ def upsert(external_id, name: UNSET, document: UNSET, kind: UNSET, legal_name: UNSET,
167
+ state_registration: UNSET, municipal_registration: UNSET, id_document: UNSET,
168
+ email: UNSET, phone: UNSET,
163
169
  website: UNSET, notes: UNSET, custom_fields: UNSET, idempotency_key: nil, timeout: nil)
164
170
  ext = segment(external_id, "external_id")
165
171
  body = compact(
166
- "name" => name, "document" => document, "email" => email, "phone" => phone,
172
+ "name" => name, "document" => document, "kind" => kind, "legal_name" => legal_name,
173
+ "state_registration" => state_registration,
174
+ "municipal_registration" => municipal_registration, "id_document" => id_document,
175
+ "email" => email, "phone" => phone,
167
176
  "website" => website, "notes" => notes, "custom_fields" => custom_fields
168
177
  )
169
178
  call("PUT", "/customers/#{ext}", body: body, idempotency_key: idempotency_key, timeout: timeout)
@@ -69,8 +69,9 @@ module Bfocus
69
69
  # `PUT /customers/{customer_external_id}/people/{person_external_id}`
70
70
  #
71
71
  # Só o que vier muda; `nil` limpa. O e-mail (ou telefone) acha a pessoa que já chegou por
72
- # outro caminho e ela é adotada, nunca duplicada; se ela estava em outro cliente, é
73
- # transferida. `access: true` devolve o acesso retirado por {#delete}.
72
+ # outro caminho e ela é adotada, nunca duplicada. Se ela existia em OUTRO cliente, NÃO é
73
+ # transferida: fica ligada também a este (cadastro único, `"linked" => true` na resposta).
74
+ # `access: true` devolve o acesso retirado por {#delete}.
74
75
  #
75
76
  # @param access [Boolean] pode abrir chamados/usar o widget.
76
77
  # @param is_primary [Boolean] contato principal do cliente.
@@ -88,7 +89,9 @@ module Bfocus
88
89
  # PRÓPRIA ficha: alcançando a pessoa por um identificador EXTRA, a API recusa (409
89
90
  # `PERSON_CLEAR_NOT_OWN_RECORD`) — apagar contato de ficha alcançada por apelido seria
90
91
  # apagar dado de outro sistema.
91
- # @return [Hash] a pessoa + `"status"`.
92
+ # @return [Hash] a pessoa + `"status"`, `"linked"` (já existia em outro cliente e agora está
93
+ # ligada a este também) e `"merged_into"` (o id que você mandou era um apelido; este é o
94
+ # principal do cadastro).
92
95
  def upsert(customer_external_id, person_external_id, name: UNSET, email: UNSET, phone: UNSET,
93
96
  role: UNSET, access: UNSET, is_primary: UNSET, extra_emails: UNSET, extra_phones: UNSET,
94
97
  custom_fields: UNSET, clear: UNSET, idempotency_key: nil, timeout: nil)
@@ -110,9 +113,13 @@ module Bfocus
110
113
  timeout: timeout)
111
114
  end
112
115
 
113
- # Retira o acesso da pessoa (ela continua no histórico).
116
+ # Retira o acesso da pessoa NESTE cliente (ela continua no histórico).
114
117
  # `DELETE /customers/{customer_external_id}/people/{person_external_id}`
115
- # @return [Hash] a pessoa, com `"access" => false`.
118
+ #
119
+ # O acesso é DO VÍNCULO: a mesma pessoa circula por vários clientes e tirar o acesso aqui
120
+ # não tira o dela nos outros.
121
+ # @return [Hash] a pessoa, com `"access" => false` e `"unlinked"` (`true` = ela segue ativa
122
+ # em outros clientes; `false` = era só deste e foi desligada).
116
123
  def delete(customer_external_id, person_external_id, idempotency_key: nil, timeout: nil)
117
124
  cid = segment(customer_external_id, "customer_external_id")
118
125
  pid = segment(person_external_id, "person_external_id")
@@ -3,5 +3,5 @@
3
3
  module Bfocus
4
4
  # Versão da gem. O `scripts/release-sdks.sh` do monorepo bumpa esta linha por regex e o
5
5
  # `bfocus.gemspec` lê daqui — mantenha o formato exato `VERSION = "X.Y.Z"`.
6
- VERSION = "0.2.1"
6
+ VERSION = "0.2.3"
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bfocus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Berni Software