Skip to content

Commit 2b3009d

Browse files
committed
support the new list feature
1 parent 887fcee commit 2b3009d

File tree

3 files changed

+50
-10
lines changed

3 files changed

+50
-10
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ require (
88
github.com/andybalholm/brotli v1.0.4 // indirect
99
github.com/klauspost/compress v1.15.0 // indirect
1010
github.com/valyala/bytebufferpool v1.0.0 // indirect
11-
golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8 // indirect
11+
golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8
1212
golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9 // indirect
1313
)

helpers.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package main
2+
3+
import "errors"
4+
5+
func checkIfCVHasReferenceNr(cv map[string]interface{}) (referenceNr string, err error) {
6+
referenceNrInterf, ok := cv["referenceNumber"]
7+
if !ok {
8+
return "", errors.New("referenceNumber field does not exists")
9+
}
10+
11+
referenceNr, ok = referenceNrInterf.(string)
12+
if !ok {
13+
return "", errors.New("referenceNumber must be a string")
14+
}
15+
16+
return referenceNr, nil
17+
}

webserver.go

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"encoding/json"
5+
"fmt"
56
"log"
67
"net"
78
"strconv"
@@ -29,15 +30,9 @@ func startWebserver(env Env, api *API, loginUsers []EnvUser) string {
2930
return
3031
}
3132

32-
referenceNrInterf, ok := cvContent["referenceNumber"]
33-
if !ok {
34-
errorResp(ctx, 400, "referenceNumber field does not exists")
35-
return
36-
}
37-
38-
referenceNr, ok := referenceNrInterf.(string)
39-
if !ok {
40-
errorResp(ctx, 400, "referenceNumber must be a string")
33+
referenceNr, err := checkIfCVHasReferenceNr(cvContent)
34+
if err != nil {
35+
errorResp(ctx, 400, err.Error())
4136
return
4237
}
4338

@@ -76,6 +71,34 @@ func startWebserver(env Env, api *API, loginUsers []EnvUser) string {
7671
}
7772
}
7873

74+
ctx.Response.AppendBodyString("true")
75+
case "/cvs_list":
76+
cvsContent := []map[string]interface{}{}
77+
err := json.Unmarshal(body, &cvsContent)
78+
if err != nil {
79+
errorResp(ctx, 400, "invalid CV")
80+
return
81+
}
82+
83+
for idx, cv := range cvsContent {
84+
_, err := checkIfCVHasReferenceNr(cv)
85+
if err != nil {
86+
errorResp(ctx, 400, fmt.Sprintf("error in cv with index %d, error: %s", idx, err.Error()))
87+
return
88+
}
89+
}
90+
91+
if !api.MockMode {
92+
body := append(append([]byte(`{"cvs":`), body...), '}')
93+
for _, conn := range api.connections {
94+
err = conn.Post("/api/v1/scraper/allCVs", json.RawMessage(body), nil)
95+
if err != nil {
96+
errorResp(ctx, 500, err.Error())
97+
return
98+
}
99+
}
100+
}
101+
79102
ctx.Response.AppendBodyString("true")
80103
case "/users":
81104
ctx.Response.AppendBody(loginUsersJSON)

0 commit comments

Comments
 (0)