     switch self {
     case .AccessToken, .RefreshToken:
       return .URL
-    case .Vote:
+    case .Vote, . Save, .Unsave, .Report:
       return .URLEncodedInURL
     default:
       return method == .GET ? .URL : .JSON

      return "/user/\(username)/about"
    case .Vote:
      return "/api/vote"
    }
  }

  var method: Moya.Method {
    switch self {
    case .AccessToken, .RefreshToken, .Vote:
      return .POST
    default:
      return .GET

      return JSONHelper.flatJSON(["after": after, "t": listingTypeRange])
    case .Vote(_, let identifier, let direction):
      return ["id": identifier, "dir": direction]
    case .Save(_, let identifier):
      return ["id": identifier]
    case .Unsave(_, let identifier):
      return ["id": identifier]
    case .Report(_, let identifier, let reason):
      return ["thing_id": identifier, "reason": reason]
    default:
      return nil
    }
