作者:sjarvi
项目:GoDF
// SendHeartbeat is used to notify the namenode of a valid connection
// on a periodic basis
func SendHeartbeat(encoder *json.Encoder) {
p := new(Packet)
p.SRC = id
p.DST = "NN"
p.CMD = HB
encoder.Encode(p)
}
作者:starshipfactor
项目:membersy
func (m *MemberTrashListHandler) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
var memberlist []*membersys.MemberWithKey
var enc *json.Encoder
var err error
if !m.auth.IsAuthenticatedScope(req, m.admingroup) {
rw.WriteHeader(http.StatusUnauthorized)
return
}
memberlist, err = m.database.EnumerateTrashedMembers(
req.FormValue("start"), m.pagesize)
if err != nil {
log.Print("Error enumerating trashed members: ", err)
rw.WriteHeader(http.StatusInternalServerError)
rw.Write([]byte("Error enumerating trashed members: " + err.Error()))
return
}
rw.Header().Set("Content-Type", "application/json; encoding=utf8")
enc = json.NewEncoder(rw)
if err = enc.Encode(memberlist); err != nil {
log.Print("Error JSON encoding member list: ", err)
rw.WriteHeader(http.StatusInternalServerError)
rw.Write([]byte("Error encoding result: " + err.Error()))
return
}
}
作者:sjarvi
项目:GoDF
// HandleResponse delegates actions to perform based on the
// contents of a recieved Packet, and encodes a response
func HandleResponse(p Packet, encoder *json.Encoder) {
r := new(Packet)
r.SRC = id
r.DST = p.SRC
switch p.CMD {
case ACK:
return
case LIST:
list := GetBlockHeaders()
r.Headers = make([]BlockHeader, len(list))
for i, b := range list {
r.Headers[i] = b
}
r.CMD = LIST
case BLOCK:
r.CMD = BLOCKACK
WriteBlock(p.Data)
r.Headers = make([]BlockHeader, 0, 2)
r.Headers = append(r.Headers, p.Data.Header)
case RETRIEVEBLOCK:
fmt.Println("retrieving block from ", p.Headers[0])
b := BlockFromHeader(p.Headers[0])
r.CMD = BLOCK
r.Data = b
}
encoder.Encode(*r)
}
作者:namsra
项目:crudap
// authenticate request and authorize action
func authenticateAndAuthorize(action Action, urlVars map[string]string, params url.Values, resp http.ResponseWriter, enc *json.Encoder) (ok bool) {
authenticated, client, errorMessage := g.Authenticate(params)
if !authenticated {
log.Println("unauthenticated request:\n\tURL parameters:", params, "\n\terror message:", errorMessage)
resp.WriteHeader(http.StatusUnauthorized)
err := enc.Encode(apiResponse{errorMessage, "", nil})
if err != nil {
log.Println(err)
}
return
}
kind := urlVars["kind"]
id := urlVars["id"]
authorized, errorMessage := g.Authorize(client, action, urlVars)
if !authorized {
log.Println("unauthorized request:\n\tclient:", client, "\n\taction:", action, "kind:", kind, "id:", id, "\n\terror message", errorMessage)
resp.WriteHeader(http.StatusForbidden)
err := enc.Encode(apiResponse{errorMessage, "", nil})
if err != nil {
log.Println(err)
}
return
}
ok = true
return
}
作者:sauerbrate
项目:crudap
func create(storage Storage, resp http.ResponseWriter, vars map[string]string, enc *json.Encoder, dec *json.Decoder) {
var resource map[string]interface{}
err := dec.Decode(&resource)
if err != nil {
log.Println(err)
resp.WriteHeader(http.StatusBadRequest)
err = enc.Encode(apiResponse{"malformed json", "", nil})
if err != nil {
log.Println(err)
}
return
}
// set in storage
id, stoResp := storage.Create(vars["collection"], resource)
// write response
resp.WriteHeader(stoResp.StatusCode())
err = enc.Encode(apiResponse{stoResp.Error(), id, nil})
if err != nil {
log.Println(err)
}
}
作者:lafisra
项目:21twee
func catchReturn(dataChan chan Data, encoder *json.Encoder, id int) {
select {
case data := <-dataChan:
fmt.Println("Got message back!", data)
data["Id"] = id
encoder.Encode(&data)
}
}
作者:sjarvi
项目:GoDF
// SendPackets encodes packets and transmits them to their proper recipients
func SendPackets(encoder *json.Encoder, ch chan Packet) {
for p := range ch {
err := encoder.Encode(p)
if err != nil {
log.Println("error sending", p.DST)
}
}
}
作者:maleck1
项目:locals-ap
func UploadProfilePic(wr http.ResponseWriter, req *http.Request) {
var (
profileImgLoc string
id int64
err error
p *data.Profile
file multipart.File
header *multipart.FileHeader
enc *json.Encoder
)
enc = json.NewEncoder(wr)
params := mux.Vars(req)
id, err = strconv.ParseInt(params["id"], 10, 64)
p, err = data.FindProfileById(id)
req.ParseMultipartForm(10 << 20) //approx 10MB
file, header, err = req.FormFile("file")
handleUploadErr := func(err error, status int) {
if nil != err {
wr.WriteHeader(status)
enc.Encode(NewErrorJSON(err.Error(), status))
}
}
if err != nil {
log.Println("error upload pic " + err.Error())
handleUploadErr(err, http.StatusBadRequest)
return
}
defer file.Close()
uploadedFilePath, err := service.SaveUploadedFile(file, header.Filename)
if err != nil {
log.Println("failed to create thumbnail file " + err.Error())
handleUploadErr(err, http.StatusInternalServerError)
return
}
uploadedFilePath, err = service.ThumbnailMultipart(file, header.Filename)
if err != nil {
log.Println("failed to create thumbnail file " + err.Error())
handleUploadErr(err, http.StatusInternalServerError)
return
}
profileImgLoc, err = data.PutInBucket(uploadedFilePath, header.Filename)
if err != nil {
log.Println("failed up upload to s3 " + err.Error())
handleUploadErr(err, http.StatusInternalServerError)
return
}
p.UpdateProfilePic(profileImgLoc)
enc.Encode(p)
}
作者:rmer
项目:goche
func EncodeCoords(coords *v3.Matrix, enc *json.Encoder) *Error {
c := new(Coords)
t := make([]float64, 3, 3)
for i := 0; i < coords.NVecs(); i++ {
c.Coords = coords.Row(t, i)
if err := enc.Encode(c); err != nil {
return NewError("postprocess", "chemjson.EncodeCoords", err)
}
}
return nil
}
作者:cdshan
项目:minimeg
func sendLocalResp(enc *json.Encoder, resp minicli.Responses, more bool) error {
r := miniclient.Response{
More: more,
}
if resp != nil {
r.Resp = resp
r.Rendered = resp.String()
}
return enc.Encode(&r)
}
作者:csabahen
项目:parsefus
func formatJson(jw *json.Encoder, lim int, a ...interface{}) {
var jr jrec
if lim > 0 {
jr.Truncated = truncate(lim, a)
}
jr.Msg = a
err := jw.Encode(jr)
if err != nil {
log.Fatal("json.Encode: ", err)
}
}
作者:sauerbrate
项目:crudap
func getAll(storage Storage, resp http.ResponseWriter, vars map[string]string, enc *json.Encoder, dec *json.Decoder) {
// look for resources
resources, stoResp := storage.GetAll(vars["collection"])
// write response
resp.WriteHeader(stoResp.StatusCode())
err := enc.Encode(apiResponse{stoResp.Error(), "", resources})
if err != nil {
log.Println(err)
}
}
作者:sauerbrate
项目:crudap
// delete() is a built-in function, thus del() is used here
func del(storage Storage, resp http.ResponseWriter, vars map[string]string, enc *json.Encoder, dec *json.Decoder) {
// delete resource
stoResp := storage.Delete(vars["collection"], vars["id"])
// write response
resp.WriteHeader(stoResp.StatusCode())
err := enc.Encode(apiResponse{stoResp.Error(), "", nil})
if err != nil {
log.Println(err)
}
}
作者:ITLivLa
项目:minimeg
func sendLocalResp(enc *json.Encoder, resp minicli.Responses, more bool) error {
log.Infoln("sending resp:", resp)
r := localResponse{
More: more,
}
if resp != nil {
r.Resp = resp
r.Rendered = resp.String()
}
return enc.Encode(&r)
}
作者:rmer
项目:goche
func EncodeAtoms(mol chem.Atomer, enc *json.Encoder) *Error {
const funcname = "EncodeAtoms"
if mol == nil {
return nil //Its assumed to be intentional.
}
for i := 0; i < mol.Len(); i++ {
if err := enc.Encode(mol.Atom(i)); err != nil {
return NewError("postprocess", funcname, err)
}
}
return nil
}
作者:mm
项目:fl
func sendSize(enc *json.Encoder) {
rows, cols, err := pty.Getsize(os.Stdin)
if err == nil {
enc.Encode(atc.HijackInput{
TTYSpec: &atc.HijackTTYSpec{
WindowSize: atc.HijackWindowSize{
Columns: cols,
Rows: rows,
},
},
})
}
}
作者:trusc
项目:hors
func (server *Server) processUnload(msg Message, encoder *json.Encoder) {
if payload, ok := msg.Payload.(map[string]interface{}); ok {
if id, ok := payload["id"].(string); ok {
server.runner.UnloadProcessor(id)
msg.Command = successString
encoder.Encode(msg)
return
}
}
msg.Command = errorString
msg.Payload = "need object with id as payload"
encoder.Encode(msg)
}
作者:kuronek
项目:Orchestr
func sendQueueFailureResponse(reason string, enc *json.Encoder) {
resp := make([]interface{}, 2)
resperr := new(string)
*resperr = "Error"
resp[0] = resperr
if reason != "" {
resp[1] = &reason
}
err := enc.Encode(resp)
if nil != err {
o.Warn("Couldn't encode response to audience: %s", err)
}
}
作者:yindemin
项目:ForrestFir
func Submit(encoder *json.Encoder, email, url, content string) {
job, err := J.New(email, url, content)
if err != nil {
HandleSubmitError(encoder, err)
return
}
job.Progress("Working...")
app.Queue(*job)
encoder.Encode(JSON{
"message": "Submitted! Hang tight...",
"id": job.Key.String(),
})
}
作者:JFrogDe
项目:jfrog-cli-g
func (sm *StreamManager) parseStream(streamDecoder *json.Decoder, streamEncoder *json.Encoder) error {
for {
var decodedJson map[string]interface{}
if e := streamDecoder.Decode(&decodedJson); e != nil {
log.Debug(e)
return e
}
if _, ok := sm.IncludeFilter[decodedJson["type"].(string)]; ok || len(sm.IncludeFilter) == 0 {
if e := streamEncoder.Encode(&decodedJson); e != nil {
log.Debug(e)
return e
}
}
}
}