{
  "repo": "tidbcloud/escalation-base",
  "binary": "olympus-backend",
  "binary_path": "olympus-HA/backend/main.go",
  "surface_kind": "http_service",
  "type": "http_service",
  "extensions": {
    "notes": [
      "Fresh codex rescan rebuilt olympus-backend from the actual Gin registration code. The runtime surface is six schedule handlers, one token-validation handler, and one Authing login callback."
    ]
  },
  "services": [
    {
      "name": "OlympusLifecycle",
      "package": "olympus-HA/backend/main.go",
      "methods": [
        {
          "name": "LoadConfigAndFlags",
          "name_key": "OlympusLifecycle.LoadConfigAndFlags",
          "input": "mode flag and config files",
          "output": "logging and Viper config initialized",
          "type": "local"
        },
        {
          "name": "StartHTTPServer",
          "name_key": "OlympusLifecycle.StartHTTPServer",
          "input": "Gin engine",
          "output": "HTTP listener started on configured port",
          "type": "local"
        }
      ]
    },
    {
      "name": "OlympusScheduleHTTP",
      "package": "olympus-HA/backend/service/scheduler",
      "methods": [
        {
          "name": "ShiftView",
          "name_key": "OlympusScheduleHTTP.ShiftView",
          "input": "GET request",
          "output": "current overview and shift list JSON",
          "type": "http",
          "http_method": "GET",
          "http_path": "/api1/schedule/shiftview"
        },
        {
          "name": "CategoryById",
          "name_key": "OlympusScheduleHTTP.CategoryById",
          "input": "id query param",
          "output": "category page JSON",
          "type": "http",
          "http_method": "GET",
          "http_path": "/api1/schedule/categoryById"
        },
        {
          "name": "Delete",
          "name_key": "OlympusScheduleHTTP.Delete",
          "input": "category_id and engineer_id query params",
          "output": "successful delete",
          "type": "http",
          "http_method": "GET",
          "http_path": "/api1/schedule/delete"
        },
        {
          "name": "Change",
          "name_key": "OlympusScheduleHTTP.Change",
          "input": "category_id, engineer_id, old_id, week_id query params",
          "output": "successfully change",
          "type": "http",
          "http_method": "GET",
          "http_path": "/api1/schedule/change"
        },
        {
          "name": "Add",
          "name_key": "OlympusScheduleHTTP.Add",
          "input": "name, en_name, email, phone, category_id, team_id query params",
          "output": "successful add",
          "type": "http",
          "http_method": "GET",
          "http_path": "/api1/schedule/add"
        },
        {
          "name": "Current",
          "name_key": "OlympusScheduleHTTP.Current",
          "input": "GET request",
          "output": "current week schedule JSON",
          "type": "http",
          "http_method": "GET",
          "http_path": "/api1/schedule/current"
        }
      ]
    },
    {
      "name": "OlympusValidateHTTP",
      "package": "olympus-HA/backend/service/validate",
      "methods": [
        {
          "name": "Validate",
          "name_key": "OlympusValidateHTTP.Validate",
          "input": "id_token query param",
          "output": "login/auth/read categories JSON",
          "type": "http",
          "http_method": "ANY",
          "http_path": "/api1/validate/"
        }
      ]
    },
    {
      "name": "OlympusLoginHTTP",
      "package": "olympus-HA/backend/service/login",
      "methods": [
        {
          "name": "LoginCallback",
          "name_key": "OlympusLoginHTTP.LoginCallback",
          "input": "code query param",
          "output": "302 redirect to frontend shift view",
          "type": "http",
          "http_method": "GET",
          "http_path": "/loginCB/"
        }
      ]
    }
  ]
}
