Class: SkillBench::Clients::ResponseBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/skill_bench/clients/response_builder.rb

Overview

Service object for building standardized response hashes. Eliminates duplication of error response formatting across the codebase.

Class Method Summary collapse

Class Method Details

.api_error(error_message:, usage: {}) ⇒ Hash

Builds a standardized API error response.

Parameters:

  • error_message (String)

    The API error message.

  • usage (Hash) (defaults to: {})

    Token usage information.

Returns:

  • (Hash)

    Standardized API error response hash.



41
42
43
44
45
46
47
48
49
# File 'lib/skill_bench/clients/response_builder.rb', line 41

def self.api_error(error_message:, usage: {})
  {
    success: false,
    result: "API Error: #{error_message}",
    usage: usage,
    response: { error: { message: "API Error: #{error_message}" } },
    status: 'error'
  }
end

.error(message:, status: 'error') ⇒ Hash

Builds a standardized error response.

Parameters:

  • message (String)

    The error message.

  • status (String) (defaults to: 'error')

    The status identifier (default: ‘error’).

Returns:

  • (Hash)

    Standardized error response hash.



13
14
15
16
17
18
19
20
# File 'lib/skill_bench/clients/response_builder.rb', line 13

def self.error(message:, status: 'error')
  {
    success: false,
    response: { error: { message: message } },
    result: message,
    status: status
  }
end

.network_error(error_message:) ⇒ Hash

Builds a standardized network error response.

Parameters:

  • error_message (String)

    The network error message.

Returns:

  • (Hash)

    Standardized network error response hash.



55
56
57
58
59
60
61
62
# File 'lib/skill_bench/clients/response_builder.rb', line 55

def self.network_error(error_message:)
  {
    success: false,
    response: { error: { message: "Network Error: #{error_message}" } },
    result: "Network Error: #{error_message}",
    status: 'error'
  }
end

.parsing_error(error_message:) ⇒ Hash

Builds a standardized parsing error response.

Parameters:

  • error_message (String)

    The parsing error message.

Returns:

  • (Hash)

    Standardized parsing error response hash.



68
69
70
71
72
73
74
75
# File 'lib/skill_bench/clients/response_builder.rb', line 68

def self.parsing_error(error_message:)
  {
    success: false,
    response: { error: { message: "Parsing Error: #{error_message}" } },
    result: "Parsing Error: #{error_message}",
    status: 'error'
  }
end

.success(content:, metadata: {}) ⇒ Hash

Builds a standardized success response.

Parameters:

  • content (String)

    The response content.

  • metadata (Hash) (defaults to: {})

    Additional metadata to include in response.

Returns:

  • (Hash)

    Standardized success response hash.



27
28
29
30
31
32
33
34
# File 'lib/skill_bench/clients/response_builder.rb', line 27

def self.success(content:, metadata: {})
  {
    success: true,
    result: content,
    response: { content: content }.merge(),
    status: 'success'
  }
end

.unexpected_error(error_message:) ⇒ Hash

Builds a standardized unexpected error response.

Parameters:

  • error_message (String)

    The unexpected error message.

Returns:

  • (Hash)

    Standardized unexpected error response hash.



81
82
83
84
85
86
87
88
# File 'lib/skill_bench/clients/response_builder.rb', line 81

def self.unexpected_error(error_message:)
  {
    success: false,
    response: { error: { message: "Unexpected Error: #{error_message}" } },
    result: "Unexpected Error: #{error_message}",
    status: 'error'
  }
end