Class: MobyUtil::OperatorData
- Defined in:
- lib/tdriver/util/operator_data/operator_data.rb
Class Method Summary collapse
-
.retrieve(operator_data_lname, operator, table_name) ⇒ Object
description Function to fetch a translation for a given logical name from the localisation DB.
Class Method Details
.retrieve(operator_data_lname, operator, table_name) ⇒ Object
description
Function to fetch a translation for a given logical name from the localisation DB
arguments
operator_data_lname
String
description: operator data identifier
example: "op_welcome_message""
operator
String
description: Operator column name to be used when fetching operator data
example: “Orange”
table_name
String
description: Name of the operator data table to use from the operator table DB
example: "operator_data_week201042"
returns
String
description: Operator data string
throws
OperatorDataColumnNotFoundError
description: If the desired operator data is not found
OperatorDataColumnNotFoundError
description: If the desired data column name to be used for the output is not found
SqlError
description: if there is and sql error while executing the query
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/tdriver/util/operator_data/operator_data.rb', line 59 def self.retrieve( operator_data_lname, operator, table_name ) raise OperatorDataNotFoundError.new( "Search string parameter cannot be nil" ) if operator_data_lname == nil # Get Localization parameters for DB Connection db_type = $parameters[ :operator_data_db_type, nil ].to_s.downcase host = $parameters[ :operator_data_server_ip ] username = $parameters[ :operator_data_server_username ] password = $parameters[ :operator_data_server_password ] database_name = $parameters[ :operator_data_server_database_name ] db_connection = DBConnection.new( db_type, host, database_name, username, password ) search_string = "#{ operator_data_lname }' AND `Operator` = '#{ operator }" query_string = "select `Value` from `#{ table_name }` where `LogicalName` = '#{ search_string }' and `LogicalName` <> '#MISSING'" begin result = MobyUtil::DBAccess.query( db_connection, query_string ) rescue # if data column to be searched is not found then raise error for search column not found raise OperatorDataColumnNotFoundError.new( "Search column 'Value' not found in database" ) unless $!..index( "Unknown column" ) == nil raise SqlError.new( $!. ) end # Return always the first column of the row raise OperatorDataNotFoundError.new("No matches found for search string '#{ operator_data_lname }' in search column 'LogicalName' for opreator #{ operator }" ) if ( result.empty?) # Result is an Array of rows (Array<String>)! We want the first column of the first row. return result[0][0] end |