|
- package main
-
- import (
- "encoding/json"
- "fmt"
- "net/http"
- )
-
- func GenShardHash(b []byte) (final byte) {
- for i, b := range b {
- final = (b ^ final ^ byte(i)) + final + byte(i) + final*byte(i)
- }
- return final
- }
-
- func WriteResponse(res http.ResponseWriter, statusCode int, v any) {
- res.Header().Set("Content-Type", "application/json")
- res.WriteHeader(statusCode)
- if statusCode == http.StatusNoContent {
- return
- }
- if err, isError := v.(error); isError {
- v = map[string]any{
- "error": fmt.Sprintf("%v", err),
- "status_code": statusCode,
- }
- } else {
- v = map[string]any{
- "data": v,
- "status_code": statusCode,
- }
- }
- json.NewEncoder(res).Encode(v)
- }
|