Skip to content

Commit 5e6c1f0

Browse files
committed
Revert "Moves motives to Badger"
This reverts commit 3098023.
1 parent dfe51d3 commit 5e6c1f0

File tree

4 files changed

+8
-89
lines changed

4 files changed

+8
-89
lines changed

transform/badger.go

-42
Original file line numberDiff line numberDiff line change
@@ -10,54 +10,12 @@ import (
1010

1111
const badgerFilePrefix = "minha-receita-badger-"
1212

13-
func removeLeadingZeros(n string) string {
14-
var o string
15-
isZero := true
16-
for _, ch := range n {
17-
if ch != '0' || !isZero {
18-
o += string(ch)
19-
isZero = false
20-
}
21-
}
22-
if o == "" {
23-
o = "0"
24-
}
25-
return o
26-
}
27-
28-
func keyForMotives(n string) string { return fmt.Sprintf("motives%s", removeLeadingZeros(n)) }
2913
func keyForPartners(n string) string { return fmt.Sprintf("partners%s", n) }
3014
func keyForBase(n string) string { return fmt.Sprintf("base%s", n) }
3115
func keyForTaxes(n string) string { return fmt.Sprintf("taxes%s", n) }
3216

3317
// functions to read data from Badger
3418

35-
func motivesOf(db *badger.DB, i int) (string, bool, error) {
36-
var m string
37-
found := false
38-
n := fmt.Sprintf("%d", i)
39-
err := db.View(func(txn *badger.Txn) error {
40-
i, err := txn.Get([]byte(keyForMotives(n)))
41-
if errors.Is(err, badger.ErrKeyNotFound) {
42-
return nil
43-
}
44-
if err != nil {
45-
return fmt.Errorf("could not get key %s: %w", keyForMotives(n), err)
46-
}
47-
v, err := i.ValueCopy(nil)
48-
if err != nil {
49-
return fmt.Errorf("could not read value for key %s: %w", keyForMotives(n), err)
50-
}
51-
m = string(v)
52-
found = true
53-
return nil
54-
})
55-
if err != nil {
56-
return m, false, fmt.Errorf("error getting motive for %s: %w", n, err)
57-
}
58-
return m, found, nil
59-
}
60-
6119
func partnersOf(db *badger.DB, n string) ([]partnerData, error) {
6220
p := []partnerData{}
6321
err := db.View(func(txn *badger.Txn) error {

transform/badger_test.go

-19
Original file line numberDiff line numberDiff line change
@@ -200,22 +200,3 @@ func TestSaveAndReadItems(t *testing.T) {
200200
})
201201
}
202202
}
203-
204-
func TestRemoveLeadingZeros(t *testing.T) {
205-
for _, tc := range []struct {
206-
value string
207-
expected string
208-
}{
209-
{"42", "42"},
210-
{"420", "420"},
211-
{"042", "42"},
212-
{"0042", "42"},
213-
{"test", "test"},
214-
{"0", "0"},
215-
} {
216-
got := removeLeadingZeros(tc.value)
217-
if got != tc.expected {
218-
t.Errorf("expected %s, got %s", tc.expected, got)
219-
}
220-
}
221-
}

transform/kv.go

+1-26
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,6 @@ type item struct {
2020
func newKVItem(s sourceType, l *lookups, r []string) (i item, err error) {
2121
var h func(l *lookups, r []string) ([]byte, error)
2222
switch s {
23-
case motives:
24-
i.key = []byte(keyForMotives(r[0]))
25-
h = func(_ *lookups, r []string) ([]byte, error) {
26-
return []byte(r[1]), nil
27-
}
2823
case partners:
2924
i.key = []byte(keyForPartners(r[0]))
3025
h = loadPartnerRow
@@ -51,7 +46,7 @@ type badgerStorage struct {
5146
}
5247

5348
func (kv *badgerStorage) load(dir string, l *lookups) error {
54-
srcs, err := newSources(dir, []sourceType{motives, base, partners, taxes})
49+
srcs, err := newSources(dir, []sourceType{base, partners, taxes})
5550
if err != nil {
5651
return fmt.Errorf("could not load sources: %w", err)
5752
}
@@ -115,53 +110,33 @@ func (kv *badgerStorage) load(dir string, l *lookups) error {
115110

116111
func (kv *badgerStorage) enrichCompany(c *company) error {
117112
n := cnpj.Base(c.CNPJ)
118-
ms := make(chan string)
119113
ps := make(chan []partnerData)
120114
bs := make(chan baseData)
121115
ts := make(chan taxesData)
122116
errs := make(chan error)
123-
go func() {
124-
if c.MotivoSituacaoCadastral == nil {
125-
return
126-
}
127-
m, ok, err := motivesOf(kv.db, *c.MotivoSituacaoCadastral)
128-
if err != nil {
129-
errs <- err
130-
return
131-
}
132-
if !ok {
133-
return
134-
}
135-
ms <- m
136-
}()
137117
go func() {
138118
p, err := partnersOf(kv.db, n)
139119
if err != nil {
140120
errs <- err
141-
return
142121
}
143122
ps <- p
144123
}()
145124
go func() {
146125
v, err := baseOf(kv.db, n)
147126
if err != nil {
148127
errs <- err
149-
return
150128
}
151129
bs <- v
152130
}()
153131
go func() {
154132
t, err := taxesOf(kv.db, n)
155133
if err != nil {
156134
errs <- err
157-
return
158135
}
159136
ts <- t
160137
}()
161138
for i := 0; i < 3; i++ {
162139
select {
163-
case m := <-ms:
164-
c.DescricaoMotivoSituacaoCadastral = &m
165140
case p := <-ps:
166141
c.QuadroSocietario = p
167142
case v := <-bs:

transform/lookups.go

+7-2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ func newLookup(p string) (lookup, error) {
2222
}
2323

2424
type lookups struct {
25+
motives lookup
2526
cities lookup
2627
countries lookup
2728
cnaes lookup
@@ -32,7 +33,7 @@ type lookups struct {
3233

3334
func newLookups(d string) (lookups, error) {
3435
var ls []lookup
35-
srcs := []sourceType{cities, countries, cnaes, qualifications, natures}
36+
srcs := []sourceType{motives, cities, countries, cnaes, qualifications, natures}
3637
for _, src := range srcs {
3738
paths, err := pathsForSource(src, d)
3839
if err != nil {
@@ -53,7 +54,7 @@ func newLookups(d string) (lookups, error) {
5354
if err != nil {
5455
return lookups{}, fmt.Errorf("error creating ibge lookup: %w", err)
5556
}
56-
return lookups{ls[0], ls[1], ls[2], ls[3], ls[4], c}, nil
57+
return lookups{ls[0], ls[1], ls[2], ls[3], ls[4], ls[5], c}, nil
5758
}
5859

5960
func (c *company) motivoSituacaoCadastral(l *lookups, v string) error {
@@ -64,7 +65,11 @@ func (c *company) motivoSituacaoCadastral(l *lookups, v string) error {
6465
if i == nil {
6566
return nil
6667
}
68+
s := l.motives[*i]
6769
c.MotivoSituacaoCadastral = i
70+
if s != "" {
71+
c.DescricaoMotivoSituacaoCadastral = &s
72+
}
6873
return nil
6974
}
7075

0 commit comments

Comments
 (0)