rpc_handler.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package servicelib
  2. import (
  3. "context"
  4. "encoding/json"
  5. "hnyfkj.com.cn/rtu/linux/baseapp"
  6. "hnyfkj.com.cn/rtu/linux/utils/jsonrpc2"
  7. )
  8. func MakeGetBuildVer(version, buildTime string) jsonrpc2.MethodHandler {
  9. return func(ctx context.Context, req *jsonrpc2.Request) *jsonrpc2.Response {
  10. result := map[string]string{
  11. "version": version,
  12. "build_time": buildTime,
  13. }
  14. return jsonrpc2.BuildResponse(req, result, nil)
  15. }
  16. }
  17. func GetLogLevel(ctx context.Context, req *jsonrpc2.Request) *jsonrpc2.Response {
  18. level, _ := baseapp.GetLogLevel()
  19. result := map[string]string{
  20. "log_level": level,
  21. }
  22. return jsonrpc2.BuildResponse(req, result, nil)
  23. }
  24. func SetLogLevel(ctx context.Context, req *jsonrpc2.Request) *jsonrpc2.Response {
  25. var params map[string]string
  26. if err := json.Unmarshal(req.Params, &params); err != nil {
  27. return jsonrpc2.BuildError(req, jsonrpc2.ErrInvalidParams, err.Error())
  28. }
  29. level, ok := params["log_level"]
  30. if !ok || level == "" {
  31. return jsonrpc2.BuildError(req, jsonrpc2.ErrInvalidParams, "missing or empty 'log_level' parameter")
  32. }
  33. err := baseapp.UpdateLogLevel(level)
  34. if err != nil {
  35. return jsonrpc2.BuildError(req, jsonrpc2.ErrInternal, err.Error())
  36. }
  37. return jsonrpc2.BuildResponse(req, "success", nil)
  38. }
  39. func SaveLogConf(ctx context.Context, req *jsonrpc2.Request) *jsonrpc2.Response {
  40. err := baseapp.SaveLogConfig()
  41. if err != nil {
  42. return jsonrpc2.BuildError(req, jsonrpc2.ErrInternal, err.Error())
  43. }
  44. return jsonrpc2.BuildResponse(req, "success", nil)
  45. }