ZOHOCRMSDK2_0 2.0.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/src/com/zoho/api/authenticator/oauth_token.rb +184 -178
- data/src/com/zoho/api/authenticator/store/db_store.rb +125 -123
- data/src/com/zoho/api/authenticator/store/file_store.rb +155 -153
- data/src/com/zoho/api/authenticator/store/token_store.rb +29 -27
- data/src/com/zoho/api/authenticator/token.rb +10 -8
- data/src/com/zoho/api/logger/sdk_logger.rb +59 -57
- data/src/com/zoho/crm/api/attachments/action_handler.rb +7 -5
- data/src/com/zoho/crm/api/attachments/action_response.rb +7 -5
- data/src/com/zoho/crm/api/attachments/action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/attachments/api_exception.rb +95 -93
- data/src/com/zoho/crm/api/attachments/attachment.rb +271 -269
- data/src/com/zoho/crm/api/attachments/attachments_operations.rb +168 -166
- data/src/com/zoho/crm/api/attachments/file_body_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/attachments/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/attachments/response_wrapper.rb +63 -61
- data/src/com/zoho/crm/api/attachments/success_response.rb +91 -89
- data/src/com/zoho/crm/api/blue_print/action_response.rb +7 -5
- data/src/com/zoho/crm/api/blue_print/api_exception.rb +93 -91
- data/src/com/zoho/crm/api/blue_print/blue_print.rb +89 -87
- data/src/com/zoho/crm/api/blue_print/blue_print_operations.rb +56 -54
- data/src/com/zoho/crm/api/blue_print/body_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/blue_print/next_transition.rb +61 -59
- data/src/com/zoho/crm/api/blue_print/process_info.rb +187 -185
- data/src/com/zoho/crm/api/blue_print/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/blue_print/response_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/blue_print/success_response.rb +91 -89
- data/src/com/zoho/crm/api/blue_print/transition.rb +187 -185
- data/src/com/zoho/crm/api/blue_print/validation_error.rb +61 -59
- data/src/com/zoho/crm/api/bulk_read/action_handler.rb +7 -5
- data/src/com/zoho/crm/api/bulk_read/action_response.rb +7 -5
- data/src/com/zoho/crm/api/bulk_read/action_wrapper.rb +63 -61
- data/src/com/zoho/crm/api/bulk_read/api_exception.rb +95 -93
- data/src/com/zoho/crm/api/bulk_read/bulk_read_operations.rb +61 -59
- data/src/com/zoho/crm/api/bulk_read/call_back.rb +61 -59
- data/src/com/zoho/crm/api/bulk_read/criteria.rb +101 -99
- data/src/com/zoho/crm/api/bulk_read/file_body_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/bulk_read/job_detail.rb +145 -143
- data/src/com/zoho/crm/api/bulk_read/query.rb +103 -101
- data/src/com/zoho/crm/api/bulk_read/request_wrapper.rb +75 -73
- data/src/com/zoho/crm/api/bulk_read/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/bulk_read/response_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/bulk_read/result.rb +103 -101
- data/src/com/zoho/crm/api/bulk_read/success_response.rb +91 -89
- data/src/com/zoho/crm/api/bulk_write/action_response.rb +7 -5
- data/src/com/zoho/crm/api/bulk_write/api_exception.rb +179 -177
- data/src/com/zoho/crm/api/bulk_write/bulk_write_operations.rb +93 -91
- data/src/com/zoho/crm/api/bulk_write/bulk_write_response.rb +161 -159
- data/src/com/zoho/crm/api/bulk_write/call_back.rb +61 -59
- data/src/com/zoho/crm/api/bulk_write/field_mapping.rb +117 -115
- data/src/com/zoho/crm/api/bulk_write/file.rb +117 -115
- data/src/com/zoho/crm/api/bulk_write/file_body_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/bulk_write/request_wrapper.rb +89 -87
- data/src/com/zoho/crm/api/bulk_write/resource.rb +145 -143
- data/src/com/zoho/crm/api/bulk_write/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/bulk_write/response_wrapper.rb +7 -5
- data/src/com/zoho/crm/api/bulk_write/result.rb +47 -45
- data/src/com/zoho/crm/api/bulk_write/success_response.rb +91 -89
- data/src/com/zoho/crm/api/contact_roles/action_handler.rb +7 -5
- data/src/com/zoho/crm/api/contact_roles/action_response.rb +7 -5
- data/src/com/zoho/crm/api/contact_roles/action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/contact_roles/api_exception.rb +99 -97
- data/src/com/zoho/crm/api/contact_roles/body_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/contact_roles/contact_role.rb +75 -73
- data/src/com/zoho/crm/api/contact_roles/contact_role_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/contact_roles/contact_roles_operations.rb +244 -242
- data/src/com/zoho/crm/api/contact_roles/record_action_handler.rb +7 -5
- data/src/com/zoho/crm/api/contact_roles/record_action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/contact_roles/record_body_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/contact_roles/record_response_handler.rb +7 -5
- data/src/com/zoho/crm/api/contact_roles/record_response_wrapper.rb +63 -61
- data/src/com/zoho/crm/api/contact_roles/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/contact_roles/response_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/contact_roles/success_response.rb +91 -89
- data/src/com/zoho/crm/api/currencies/action_handler.rb +7 -5
- data/src/com/zoho/crm/api/currencies/action_response.rb +7 -5
- data/src/com/zoho/crm/api/currencies/action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/currencies/api_exception.rb +97 -95
- data/src/com/zoho/crm/api/currencies/base_currency_action_handler.rb +7 -5
- data/src/com/zoho/crm/api/currencies/base_currency_action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/currencies/base_currency_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/currencies/body_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/currencies/currencies_operations.rb +136 -134
- data/src/com/zoho/crm/api/currencies/currency.rb +215 -213
- data/src/com/zoho/crm/api/currencies/format.rb +75 -73
- data/src/com/zoho/crm/api/currencies/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/currencies/response_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/currencies/success_response.rb +91 -89
- data/src/com/zoho/crm/api/custom_views/api_exception.rb +91 -89
- data/src/com/zoho/crm/api/custom_views/criteria.rb +101 -99
- data/src/com/zoho/crm/api/custom_views/custom_view.rb +243 -241
- data/src/com/zoho/crm/api/custom_views/custom_views_operations.rb +57 -55
- data/src/com/zoho/crm/api/custom_views/info.rb +117 -115
- data/src/com/zoho/crm/api/custom_views/range.rb +61 -59
- data/src/com/zoho/crm/api/custom_views/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/custom_views/response_wrapper.rb +63 -61
- data/src/com/zoho/crm/api/custom_views/shared_details.rb +89 -87
- data/src/com/zoho/crm/api/custom_views/translation.rb +89 -87
- data/src/com/zoho/crm/api/dc/au_datacenter.rb +16 -13
- data/src/com/zoho/crm/api/dc/cn_datacenter.rb +16 -13
- data/src/com/zoho/crm/api/dc/datacenter.rb +18 -16
- data/src/com/zoho/crm/api/dc/eu_datacenter.rb +16 -13
- data/src/com/zoho/crm/api/dc/in_datacenter.rb +16 -13
- data/src/com/zoho/crm/api/dc/us_datacenter.rb +16 -13
- data/src/com/zoho/crm/api/exception/sdk_exception.rb +40 -38
- data/src/com/zoho/crm/api/fields/api_exception.rb +91 -89
- data/src/com/zoho/crm/api/fields/association_details.rb +61 -59
- data/src/com/zoho/crm/api/fields/auto_number.rb +75 -73
- data/src/com/zoho/crm/api/fields/crypt.rb +117 -115
- data/src/com/zoho/crm/api/fields/currency.rb +61 -59
- data/src/com/zoho/crm/api/fields/field.rb +712 -710
- data/src/com/zoho/crm/api/fields/fields_operations.rb +54 -52
- data/src/com/zoho/crm/api/fields/formula.rb +61 -59
- data/src/com/zoho/crm/api/fields/lookup_field.rb +61 -59
- data/src/com/zoho/crm/api/fields/module.rb +117 -115
- data/src/com/zoho/crm/api/fields/multi_select_lookup.rb +117 -115
- data/src/com/zoho/crm/api/fields/pick_list_value.rb +131 -129
- data/src/com/zoho/crm/api/fields/private.rb +75 -73
- data/src/com/zoho/crm/api/fields/related_details.rb +103 -101
- data/src/com/zoho/crm/api/fields/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/fields/response_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/fields/tool_tip.rb +61 -59
- data/src/com/zoho/crm/api/fields/unique.rb +47 -45
- data/src/com/zoho/crm/api/fields/view_type.rb +89 -87
- data/src/com/zoho/crm/api/files/action_handler.rb +7 -5
- data/src/com/zoho/crm/api/files/action_response.rb +7 -5
- data/src/com/zoho/crm/api/files/action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/files/api_exception.rb +95 -93
- data/src/com/zoho/crm/api/files/body_wrapper.rb +46 -44
- data/src/com/zoho/crm/api/files/file_body_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/files/file_operations.rb +58 -56
- data/src/com/zoho/crm/api/files/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/files/success_response.rb +91 -89
- data/src/com/zoho/crm/api/header.rb +10 -8
- data/src/com/zoho/crm/api/header_map.rb +39 -37
- data/src/com/zoho/crm/api/initializer.rb +129 -127
- data/src/com/zoho/crm/api/layouts/api_exception.rb +91 -89
- data/src/com/zoho/crm/api/layouts/layout.rb +201 -199
- data/src/com/zoho/crm/api/layouts/layouts_operations.rb +47 -45
- data/src/com/zoho/crm/api/layouts/properties.rb +75 -73
- data/src/com/zoho/crm/api/layouts/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/layouts/response_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/layouts/section.rb +173 -171
- data/src/com/zoho/crm/api/modules/action_handler.rb +7 -5
- data/src/com/zoho/crm/api/modules/action_response.rb +7 -5
- data/src/com/zoho/crm/api/modules/action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/modules/api_exception.rb +95 -93
- data/src/com/zoho/crm/api/modules/argument.rb +61 -59
- data/src/com/zoho/crm/api/modules/body_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/modules/module.rb +652 -650
- data/src/com/zoho/crm/api/modules/modules_operations.rb +92 -90
- data/src/com/zoho/crm/api/modules/related_list_properties.rb +75 -73
- data/src/com/zoho/crm/api/modules/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/modules/response_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/modules/success_response.rb +91 -89
- data/src/com/zoho/crm/api/modules/territory.rb +75 -73
- data/src/com/zoho/crm/api/notes/action_handler.rb +7 -5
- data/src/com/zoho/crm/api/notes/action_response.rb +7 -5
- data/src/com/zoho/crm/api/notes/action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/notes/api_exception.rb +95 -93
- data/src/com/zoho/crm/api/notes/body_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/notes/info.rb +89 -87
- data/src/com/zoho/crm/api/notes/note.rb +257 -255
- data/src/com/zoho/crm/api/notes/notes_operations.rb +184 -182
- data/src/com/zoho/crm/api/notes/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/notes/response_wrapper.rb +63 -61
- data/src/com/zoho/crm/api/notes/success_response.rb +91 -89
- data/src/com/zoho/crm/api/notification/action_handler.rb +7 -5
- data/src/com/zoho/crm/api/notification/action_response.rb +7 -5
- data/src/com/zoho/crm/api/notification/action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/notification/api_exception.rb +95 -93
- data/src/com/zoho/crm/api/notification/body_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/notification/info.rb +89 -87
- data/src/com/zoho/crm/api/notification/notification.rb +187 -185
- data/src/com/zoho/crm/api/notification/notification_operations.rb +139 -137
- data/src/com/zoho/crm/api/notification/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/notification/response_wrapper.rb +63 -61
- data/src/com/zoho/crm/api/notification/success_response.rb +91 -89
- data/src/com/zoho/crm/api/org/action_response.rb +7 -5
- data/src/com/zoho/crm/api/org/api_exception.rb +93 -91
- data/src/com/zoho/crm/api/org/file_body_wrapper.rb +46 -44
- data/src/com/zoho/crm/api/org/license_details.rb +117 -115
- data/src/com/zoho/crm/api/org/org.rb +467 -465
- data/src/com/zoho/crm/api/org/org_operations.rb +39 -37
- data/src/com/zoho/crm/api/org/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/org/response_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/org/success_response.rb +91 -89
- data/src/com/zoho/crm/api/param.rb +10 -8
- data/src/com/zoho/crm/api/parameter_map.rb +39 -37
- data/src/com/zoho/crm/api/profiles/api_exception.rb +91 -89
- data/src/com/zoho/crm/api/profiles/category.rb +75 -73
- data/src/com/zoho/crm/api/profiles/permission_detail.rb +103 -101
- data/src/com/zoho/crm/api/profiles/profile.rb +215 -213
- data/src/com/zoho/crm/api/profiles/profiles_operations.rb +47 -45
- data/src/com/zoho/crm/api/profiles/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/profiles/response_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/profiles/section.rb +61 -59
- data/src/com/zoho/crm/api/query/api_exception.rb +91 -89
- data/src/com/zoho/crm/api/query/body_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/query/query_operations.rb +26 -24
- data/src/com/zoho/crm/api/query/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/query/response_wrapper.rb +63 -61
- data/src/com/zoho/crm/api/record/action_handler.rb +7 -5
- data/src/com/zoho/crm/api/record/action_response.rb +7 -5
- data/src/com/zoho/crm/api/record/action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/record/api_exception.rb +113 -111
- data/src/com/zoho/crm/api/record/body_wrapper.rb +117 -115
- data/src/com/zoho/crm/api/record/carry_over_tags.rb +75 -73
- data/src/com/zoho/crm/api/record/comment.rb +89 -87
- data/src/com/zoho/crm/api/record/consent.rb +130 -128
- data/src/com/zoho/crm/api/record/convert_action_handler.rb +7 -5
- data/src/com/zoho/crm/api/record/convert_action_response.rb +7 -5
- data/src/com/zoho/crm/api/record/convert_action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/record/convert_body_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/record/criteria.rb +101 -99
- data/src/com/zoho/crm/api/record/deleted_record.rb +117 -115
- data/src/com/zoho/crm/api/record/deleted_records_handler.rb +7 -5
- data/src/com/zoho/crm/api/record/deleted_records_wrapper.rb +63 -61
- data/src/com/zoho/crm/api/record/download_handler.rb +7 -5
- data/src/com/zoho/crm/api/record/field.rb +2055 -2053
- data/src/com/zoho/crm/api/record/file_body_wrapper.rb +50 -48
- data/src/com/zoho/crm/api/record/file_details.rb +243 -241
- data/src/com/zoho/crm/api/record/file_handler.rb +7 -5
- data/src/com/zoho/crm/api/record/info.rb +89 -87
- data/src/com/zoho/crm/api/record/inventory_line_items.rb +166 -164
- data/src/com/zoho/crm/api/record/lead_converter.rb +145 -143
- data/src/com/zoho/crm/api/record/line_item_product.rb +45 -43
- data/src/com/zoho/crm/api/record/line_tax.rb +89 -87
- data/src/com/zoho/crm/api/record/mass_update.rb +105 -103
- data/src/com/zoho/crm/api/record/mass_update_action_handler.rb +7 -5
- data/src/com/zoho/crm/api/record/mass_update_action_response.rb +7 -5
- data/src/com/zoho/crm/api/record/mass_update_action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/record/mass_update_body_wrapper.rb +117 -115
- data/src/com/zoho/crm/api/record/mass_update_response.rb +7 -5
- data/src/com/zoho/crm/api/record/mass_update_response_handler.rb +7 -5
- data/src/com/zoho/crm/api/record/mass_update_response_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/record/mass_update_success_response.rb +91 -89
- data/src/com/zoho/crm/api/record/options.rb +7 -5
- data/src/com/zoho/crm/api/record/participants.rb +82 -80
- data/src/com/zoho/crm/api/record/pricing_details.rb +45 -43
- data/src/com/zoho/crm/api/record/record.rb +139 -137
- data/src/com/zoho/crm/api/record/record_operations.rb +947 -939
- data/src/com/zoho/crm/api/record/recurring_activity.rb +47 -45
- data/src/com/zoho/crm/api/record/remind_at.rb +47 -45
- data/src/com/zoho/crm/api/record/reminder.rb +61 -59
- data/src/com/zoho/crm/api/record/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/record/response_wrapper.rb +63 -61
- data/src/com/zoho/crm/api/record/success_response.rb +121 -119
- data/src/com/zoho/crm/api/record/successful_convert.rb +77 -75
- data/src/com/zoho/crm/api/record/territory.rb +61 -59
- data/src/com/zoho/crm/api/related_lists/api_exception.rb +91 -89
- data/src/com/zoho/crm/api/related_lists/related_list.rb +187 -185
- data/src/com/zoho/crm/api/related_lists/related_lists_operations.rb +47 -45
- data/src/com/zoho/crm/api/related_lists/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/related_lists/response_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/related_records/action_handler.rb +7 -5
- data/src/com/zoho/crm/api/related_records/action_response.rb +7 -5
- data/src/com/zoho/crm/api/related_records/action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/related_records/api_exception.rb +95 -93
- data/src/com/zoho/crm/api/related_records/body_wrapper.rb +46 -44
- data/src/com/zoho/crm/api/related_records/file_body_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/related_records/related_records_operations.rb +460 -458
- data/src/com/zoho/crm/api/related_records/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/related_records/response_wrapper.rb +63 -61
- data/src/com/zoho/crm/api/related_records/success_response.rb +91 -89
- data/src/com/zoho/crm/api/request_proxy.rb +12 -10
- data/src/com/zoho/crm/api/roles/api_exception.rb +91 -89
- data/src/com/zoho/crm/api/roles/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/roles/response_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/roles/role.rb +145 -143
- data/src/com/zoho/crm/api/roles/roles_operations.rb +37 -35
- data/src/com/zoho/crm/api/sdk_config.rb +12 -9
- data/src/com/zoho/crm/api/share_records/action_handler.rb +7 -5
- data/src/com/zoho/crm/api/share_records/action_response.rb +7 -5
- data/src/com/zoho/crm/api/share_records/action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/share_records/api_exception.rb +99 -97
- data/src/com/zoho/crm/api/share_records/body_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/share_records/delete_action_handler.rb +7 -5
- data/src/com/zoho/crm/api/share_records/delete_action_response.rb +7 -5
- data/src/com/zoho/crm/api/share_records/delete_action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/share_records/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/share_records/response_wrapper.rb +63 -61
- data/src/com/zoho/crm/api/share_records/share_record.rb +117 -115
- data/src/com/zoho/crm/api/share_records/share_records_operations.rb +109 -107
- data/src/com/zoho/crm/api/share_records/shared_through.rb +75 -73
- data/src/com/zoho/crm/api/share_records/success_response.rb +93 -91
- data/src/com/zoho/crm/api/tags/action_handler.rb +7 -5
- data/src/com/zoho/crm/api/tags/action_response.rb +7 -5
- data/src/com/zoho/crm/api/tags/action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/tags/api_exception.rb +101 -99
- data/src/com/zoho/crm/api/tags/body_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/tags/conflict_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/tags/count_handler.rb +7 -5
- data/src/com/zoho/crm/api/tags/count_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/tags/info.rb +61 -59
- data/src/com/zoho/crm/api/tags/merge_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/tags/record_action_handler.rb +7 -5
- data/src/com/zoho/crm/api/tags/record_action_response.rb +7 -5
- data/src/com/zoho/crm/api/tags/record_action_wrapper.rb +91 -89
- data/src/com/zoho/crm/api/tags/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/tags/response_wrapper.rb +63 -61
- data/src/com/zoho/crm/api/tags/success_response.rb +93 -91
- data/src/com/zoho/crm/api/tags/tag.rb +117 -115
- data/src/com/zoho/crm/api/tags/tags_operations.rb +338 -336
- data/src/com/zoho/crm/api/taxes/action_handler.rb +7 -5
- data/src/com/zoho/crm/api/taxes/action_response.rb +7 -5
- data/src/com/zoho/crm/api/taxes/action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/taxes/api_exception.rb +95 -93
- data/src/com/zoho/crm/api/taxes/body_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/taxes/preference.rb +61 -59
- data/src/com/zoho/crm/api/taxes/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/taxes/response_wrapper.rb +63 -61
- data/src/com/zoho/crm/api/taxes/success_response.rb +91 -89
- data/src/com/zoho/crm/api/taxes/tax.rb +103 -101
- data/src/com/zoho/crm/api/taxes/taxes_operations.rb +114 -112
- data/src/com/zoho/crm/api/territories/api_exception.rb +91 -89
- data/src/com/zoho/crm/api/territories/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/territories/response_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/territories/territories_operations.rb +37 -35
- data/src/com/zoho/crm/api/territories/territory.rb +173 -171
- data/src/com/zoho/crm/api/user_signature.rb +19 -17
- data/src/com/zoho/crm/api/users/action_handler.rb +7 -5
- data/src/com/zoho/crm/api/users/action_response.rb +7 -5
- data/src/com/zoho/crm/api/users/action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/users/api_exception.rb +95 -93
- data/src/com/zoho/crm/api/users/body_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/users/customize_info.rb +117 -115
- data/src/com/zoho/crm/api/users/info.rb +89 -87
- data/src/com/zoho/crm/api/users/request_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/users/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/users/response_wrapper.rb +63 -61
- data/src/com/zoho/crm/api/users/shift.rb +61 -59
- data/src/com/zoho/crm/api/users/success_response.rb +91 -89
- data/src/com/zoho/crm/api/users/tab_theme.rb +61 -59
- data/src/com/zoho/crm/api/users/territory.rb +75 -73
- data/src/com/zoho/crm/api/users/theme.rb +117 -115
- data/src/com/zoho/crm/api/users/user.rb +489 -487
- data/src/com/zoho/crm/api/users/users_operations.rb +152 -150
- data/src/com/zoho/crm/api/util/api_http_connector.rb +85 -83
- data/src/com/zoho/crm/api/util/api_response.rb +16 -14
- data/src/com/zoho/crm/api/util/choice.rb +8 -6
- data/src/com/zoho/crm/api/util/common_api_handler.rb +162 -157
- data/src/com/zoho/crm/api/util/constants.rb +335 -331
- data/src/com/zoho/crm/api/util/converter.rb +167 -165
- data/src/com/zoho/crm/api/util/data_type_converter.rb +127 -125
- data/src/com/zoho/crm/api/util/downloader.rb +60 -57
- data/src/com/zoho/crm/api/util/form_data_converter.rb +118 -115
- data/src/com/zoho/crm/api/util/header_param_validator.rb +47 -45
- data/src/com/zoho/crm/api/util/json_converter.rb +535 -530
- data/src/com/zoho/crm/api/util/model.rb +6 -4
- data/src/com/zoho/crm/api/util/module_fields_handler.rb +61 -59
- data/src/com/zoho/crm/api/util/stream_wrapper.rb +27 -25
- data/src/com/zoho/crm/api/util/utility.rb +680 -668
- data/src/com/zoho/crm/api/variable_groups/api_exception.rb +91 -89
- data/src/com/zoho/crm/api/variable_groups/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/variable_groups/response_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/variable_groups/variable_group.rb +103 -101
- data/src/com/zoho/crm/api/variable_groups/variable_groups_operations.rb +54 -52
- data/src/com/zoho/crm/api/variables/action_handler.rb +7 -5
- data/src/com/zoho/crm/api/variables/action_response.rb +7 -5
- data/src/com/zoho/crm/api/variables/action_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/variables/api_exception.rb +95 -93
- data/src/com/zoho/crm/api/variables/body_wrapper.rb +47 -45
- data/src/com/zoho/crm/api/variables/response_handler.rb +7 -5
- data/src/com/zoho/crm/api/variables/response_wrapper.rb +48 -46
- data/src/com/zoho/crm/api/variables/success_response.rb +91 -89
- data/src/com/zoho/crm/api/variables/variable.rb +129 -127
- data/src/com/zoho/crm/api/variables/variables_operations.rb +231 -229
- data/src/resources/JSONDetails.json +1 -1
- data/src/version.rb +2 -2
- metadata +4 -4
@@ -1,83 +1,86 @@
|
|
1
1
|
require_relative 'converter'
|
2
2
|
require_relative 'stream_wrapper'
|
3
3
|
require_relative 'constants'
|
4
|
-
module Util
|
5
|
-
# This class is to process the download file and stream response.
|
6
|
-
class Downloader < Converter
|
7
|
-
attr_accessor :unique_hash
|
8
4
|
|
9
|
-
|
10
|
-
|
5
|
+
module ZOHOCRMSDK
|
6
|
+
module Util
|
7
|
+
# This class is to process the download file and stream response.
|
8
|
+
class Downloader < Converter
|
9
|
+
attr_accessor :unique_hash
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
def append_to_request(request, request_object); end
|
11
|
+
def initialize(common_api_handler)
|
12
|
+
@unique_hash = {}
|
16
13
|
|
17
|
-
|
18
|
-
|
19
|
-
def get_wrapped_response(response, class_path)
|
20
|
-
get_response(response, class_path)
|
21
|
-
end
|
14
|
+
super(common_api_handler)
|
15
|
+
end
|
22
16
|
|
23
|
-
|
24
|
-
require_relative '../initializer'
|
17
|
+
def append_to_request(request, request_object); end
|
25
18
|
|
26
|
-
|
19
|
+
def form_request(request_instance, class_path, member_json_details = nil); end
|
27
20
|
|
28
|
-
|
29
|
-
|
30
|
-
module_name = Utility.classname_to_filename(class_path_split[0])
|
31
|
-
file_name = Utility.classname_to_filename(class_path_split[1])
|
32
|
-
else
|
33
|
-
class_path_split = class_path.to_s.split(Constants::DOT)
|
34
|
-
module_name = class_path_split[-2]
|
35
|
-
file_name = Utility.classname_to_filename(class_path_split[-1])
|
21
|
+
def get_wrapped_response(response, class_path)
|
22
|
+
get_response(response, class_path)
|
36
23
|
end
|
37
24
|
|
38
|
-
|
25
|
+
def get_response(response_object, class_path)
|
26
|
+
require_relative '../initializer'
|
39
27
|
|
40
|
-
|
41
|
-
class_details = json_details[package_name]
|
28
|
+
json_details = Initializer.json_details
|
42
29
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
30
|
+
if class_path.to_s.include? Constants::DOUBLE_COLON
|
31
|
+
class_path_split = class_path.to_s.split(Constants::DOUBLE_COLON)
|
32
|
+
module_name = Utility.classname_to_filename(class_path_split[1])
|
33
|
+
file_name = Utility.classname_to_filename(class_path_split[2])
|
34
|
+
else
|
35
|
+
class_path_split = class_path.to_s.split(Constants::DOT)
|
36
|
+
module_name = class_path_split[-2]
|
37
|
+
file_name = Utility.classname_to_filename(class_path_split[-1])
|
47
38
|
end
|
48
|
-
return nil
|
49
|
-
else
|
50
39
|
|
51
|
-
|
40
|
+
require_relative '../' + module_name + '/' + file_name
|
52
41
|
|
53
|
-
|
54
|
-
|
55
|
-
else
|
56
|
-
Object.const_get(Utility.class_to_load(class_path)).new
|
57
|
-
end
|
58
|
-
else
|
59
|
-
Object.const_get(Utility.class_to_load(class_path.to_s)).new
|
60
|
-
end
|
42
|
+
package_name = Utility.path_to_package(class_path)
|
43
|
+
class_details = json_details[package_name]
|
61
44
|
|
62
|
-
class_details.
|
63
|
-
|
45
|
+
if class_details.key?(Constants::INTERFACE) && !class_details[Constants::INTERFACE].nil? && class_details[Constants::INTERFACE]
|
46
|
+
classes = class_details[Constants::CLASSES]
|
47
|
+
classes.each do |class_name|
|
48
|
+
return get_response(response_object, class_name) if class_name.include? Constants::FILEBODYWRAPPER
|
49
|
+
end
|
50
|
+
return nil
|
51
|
+
else
|
64
52
|
|
65
|
-
if
|
66
|
-
file_name = response_object.to_hash[Constants::CONTENT_DISPOSITION][0].split('=')[1]
|
53
|
+
instance = if class_path.is_a? String
|
67
54
|
|
68
|
-
|
55
|
+
if class_path.include? Constants::DOUBLE_COLON
|
56
|
+
Object.const_get(class_path).new
|
57
|
+
else
|
58
|
+
Object.const_get(Utility.class_to_load(class_path)).new
|
59
|
+
end
|
60
|
+
else
|
61
|
+
Object.const_get(Utility.class_to_load(class_path.to_s)).new
|
62
|
+
end
|
69
63
|
|
70
|
-
|
64
|
+
class_details.each do |member_name, member_json_details|
|
65
|
+
type = member_json_details[Constants::TYPE]
|
71
66
|
|
72
|
-
|
73
|
-
|
74
|
-
end
|
67
|
+
if type.downcase == Constants::STREAM_WRAPPER_CLASS_PATH.downcase
|
68
|
+
file_name = response_object.to_hash[Constants::CONTENT_DISPOSITION][0].split('=')[1]
|
75
69
|
|
76
|
-
|
70
|
+
file_name = file_name.split("''")[1] if file_name.include? "''"
|
71
|
+
|
72
|
+
file_name = file_name.gsub('"', '') if file_name.include? '"'
|
73
|
+
|
74
|
+
file_instance = Util::StreamWrapper.new(file_name, response_object.body)
|
75
|
+
instance_value = file_instance
|
76
|
+
end
|
77
|
+
|
78
|
+
instance.instance_variable_set(Constants::AT + member_name, instance_value)
|
79
|
+
end
|
77
80
|
end
|
78
|
-
end
|
79
81
|
|
80
|
-
|
82
|
+
instance
|
83
|
+
end
|
81
84
|
end
|
82
85
|
end
|
83
|
-
end
|
86
|
+
end
|
@@ -1,156 +1,159 @@
|
|
1
1
|
require_relative 'converter'
|
2
2
|
require_relative 'stream_wrapper'
|
3
3
|
require_relative 'constants'
|
4
|
-
module Util
|
5
|
-
# This class is to process the upload file and stream.
|
6
|
-
class FormDataConverter < Converter
|
7
|
-
attr_accessor :unique_hash
|
8
4
|
|
9
|
-
|
10
|
-
|
5
|
+
module ZOHOCRMSDK
|
6
|
+
module Util
|
7
|
+
# This class is to process the upload file and stream.
|
8
|
+
class FormDataConverter < Converter
|
9
|
+
attr_accessor :unique_hash
|
11
10
|
|
12
|
-
|
13
|
-
|
11
|
+
def initialize(common_api_handler)
|
12
|
+
@unique_hash = {}
|
14
13
|
|
15
|
-
|
16
|
-
|
17
|
-
end
|
14
|
+
super(common_api_handler)
|
15
|
+
end
|
18
16
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
17
|
+
def append_to_request(request_base, request_object)
|
18
|
+
request_base.set_form(set_file_body(request_object), Constants::MULTIPART_FORM_DATA) if request_object.is_a?(Hash)
|
19
|
+
end
|
20
|
+
|
21
|
+
def set_file_body(request_object)
|
22
|
+
data = []
|
23
|
+
request_object.each do |key, value|
|
24
|
+
if value.is_a? Array
|
25
|
+
value.each do |v|
|
26
|
+
if v.is_a? StreamWrapper
|
27
|
+
data.push([key, v.stream, { filename: v.name }])
|
28
|
+
else
|
29
|
+
data.push([key, v])
|
30
|
+
end
|
28
31
|
end
|
32
|
+
elsif value.is_a? StreamWrapper
|
33
|
+
data.push([key, value.stream, { filename: value.name }])
|
34
|
+
else
|
35
|
+
data.push([key, value])
|
29
36
|
end
|
30
|
-
elsif value.is_a? StreamWrapper
|
31
|
-
data.push([key, value.stream, { filename: value.name }])
|
32
|
-
else
|
33
|
-
data.push([key, value])
|
34
37
|
end
|
38
|
+
data
|
35
39
|
end
|
36
|
-
data
|
37
|
-
end
|
38
40
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
41
|
+
def form_request(request_instance, class_path, instance_no, member_json_details = nil)
|
42
|
+
require_relative '../initializer'
|
43
|
+
|
44
|
+
package_name = Utility.path_to_package(class_path)
|
45
|
+
class_details = Initializer.json_details[package_name]
|
46
|
+
request_hash = {}
|
47
|
+
|
48
|
+
class_details.each_key do |member_name|
|
49
|
+
member_details = class_details[member_name]
|
50
|
+
if (member_details.key?(Constants::READ_ONLY) && member_details[Constants::READ_ONLY]) || (!member_details.key? Constants::NAME)
|
51
|
+
next
|
52
|
+
end
|
51
53
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
54
|
+
begin
|
55
|
+
modified = request_instance.public_send(Constants::IS_KEY_MODIFIED, member_name)
|
56
|
+
rescue StandardError => e
|
57
|
+
raise SDKException.new(nil, Constants::EXCEPTION_IS_KEY_MODIFIED, nil, e)
|
58
|
+
end
|
57
59
|
|
58
|
-
|
59
|
-
|
60
|
-
|
60
|
+
if (modified.nil? || modified.zero?) && member_details.key?(Constants::REQUIRED) && member_details[Constants::REQUIRED]
|
61
|
+
raise SDKException.new(Constants::MANDATORY_KEY_ERROR, Constants::MANDATORY_VALUE_ERROR + member_name)
|
62
|
+
end
|
61
63
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
64
|
+
member_data = request_instance.instance_variable_get(Constants::AT + member_name)
|
65
|
+
|
66
|
+
if !modified.nil? && (modified != 0) && !member_data.nil? && value_checker(request_instance.class.name, member_name, member_details, member_data, @unique_hash, instance_no)
|
67
|
+
key_name = member_details[Constants::NAME]
|
68
|
+
type = member_details[Constants::TYPE]
|
69
|
+
if type.downcase == Constants::LIST_NAMESPACE.downcase
|
70
|
+
request_hash[key_name] = set_json_array(member_data, member_details)
|
71
|
+
elsif (type.downcase == Constants::MAP_NAMESPACE.downcase) || (type.downcase == Constants::HASH_MAP_NAMESPACE.downcase)
|
72
|
+
request_hash[key_name] = set_json_object(member_data, member_details)
|
73
|
+
elsif member_details.key? Constants::STRUCTURE_NAME
|
74
|
+
request_hash[key_name] = form_request(member_data, member_details[Constants::STRUCTURE_NAME], 1, member_details)
|
75
|
+
else
|
76
|
+
request_hash[key_name] = member_data
|
77
|
+
end
|
75
78
|
end
|
76
79
|
end
|
77
|
-
end
|
78
80
|
|
79
|
-
|
80
|
-
|
81
|
+
request_hash
|
82
|
+
end
|
81
83
|
|
82
|
-
|
83
|
-
|
84
|
-
|
84
|
+
def set_json_object(field_value, member_json_details)
|
85
|
+
json_object = {}
|
86
|
+
request_object = field_value
|
85
87
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
88
|
+
if member_json_details.nil?
|
89
|
+
request_object.each_pair do |key, value|
|
90
|
+
json_object[key] = redirector_for_object_to_json(value)
|
91
|
+
end
|
92
|
+
else
|
93
|
+
keys_detail = request_object[Constants::KEYS]
|
92
94
|
|
93
|
-
|
94
|
-
|
95
|
+
keys_detail.each do |key_detail|
|
96
|
+
key_name = key_detail[Constants::NAME]
|
95
97
|
|
96
|
-
|
98
|
+
if json_object.key?(key_name) && !json_object[key_name].nil?
|
97
99
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
100
|
+
key_value = if key_detail.key? Constants::STRUCTURE_NAME
|
101
|
+
form_request(request_object[key_name], key_detail[Constants::STRUCTURE_NAME], 1, member_json_details)
|
102
|
+
else
|
103
|
+
redirector_for_object_to_json(request_object[key_name])
|
104
|
+
end
|
105
|
+
json_object[key_name] = key_value
|
106
|
+
end
|
104
107
|
end
|
105
108
|
end
|
109
|
+
|
110
|
+
json_object
|
106
111
|
end
|
107
112
|
|
108
|
-
|
109
|
-
|
113
|
+
def set_json_array(member_data, member_json_details)
|
114
|
+
json_array = []
|
110
115
|
|
111
|
-
|
112
|
-
json_array = []
|
116
|
+
if member_json_details.nil?
|
113
117
|
|
114
|
-
|
118
|
+
member_data.each do |value|
|
119
|
+
json_array.push(redirector_for_object_to_json(value))
|
120
|
+
end
|
121
|
+
elsif member_json_details.key? Constants::STRUCTURE_NAME
|
115
122
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
123
|
+
instance_count = 0
|
124
|
+
package = member_json_details[Constants::STRUCTURE_NAME]
|
125
|
+
|
126
|
+
member_data.each do |data|
|
127
|
+
instance_count += 1
|
128
|
+
json_array.push(form_request(data, package, instance_count, member_json_details))
|
129
|
+
end
|
130
|
+
else
|
120
131
|
|
121
|
-
|
122
|
-
|
132
|
+
member_data.each do |data|
|
133
|
+
json_array.push(redirector_for_object_to_json(data))
|
134
|
+
end
|
123
135
|
|
124
|
-
member_data.each do |data|
|
125
|
-
instance_count += 1
|
126
|
-
json_array.push(form_request(data, package, instance_count, member_json_details))
|
127
136
|
end
|
128
|
-
|
137
|
+
json_array
|
138
|
+
end
|
129
139
|
|
130
|
-
|
131
|
-
|
140
|
+
def redirector_for_object_to_json(request)
|
141
|
+
if request.is_a?(Hash)
|
142
|
+
set_json_object(request, nil)
|
143
|
+
elsif request.is_a?(Array)
|
144
|
+
set_json_array(request, nil)
|
145
|
+
else
|
146
|
+
request
|
132
147
|
end
|
133
|
-
|
134
148
|
end
|
135
|
-
json_array
|
136
|
-
end
|
137
149
|
|
138
|
-
|
139
|
-
|
140
|
-
set_json_object(request, nil)
|
141
|
-
elsif request.is_a?(Array)
|
142
|
-
set_json_array(request, nil)
|
143
|
-
else
|
144
|
-
request
|
150
|
+
def get_wrapped_response(response, class_path)
|
151
|
+
nil
|
145
152
|
end
|
146
|
-
end
|
147
153
|
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
def get_response(response_object, class_path)
|
153
|
-
nil
|
154
|
+
def get_response(response_object, class_path)
|
155
|
+
nil
|
156
|
+
end
|
154
157
|
end
|
155
158
|
end
|
156
|
-
end
|
159
|
+
end
|
@@ -1,55 +1,57 @@
|
|
1
|
-
module
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
1
|
+
module ZOHOCRMSDK
|
2
|
+
module Util
|
3
|
+
class HeaderParamValidator
|
4
|
+
def validate(header_param, value)
|
5
|
+
name = header_param.name
|
6
|
+
class_name = header_param.class_name
|
7
|
+
json_details = get_json_details
|
8
|
+
split_names = class_name.split(Constants::DOT)
|
9
|
+
structure_name = ''
|
10
|
+
(0..split_names.length - 2).each do |i|
|
11
|
+
changed_class_name = ''
|
12
|
+
camel_case_split = (split_names[i].to_s.split(/([[:upper:]][[:lower:]]+)/)).delete_if(&:empty?)
|
13
|
+
camel_case_split.each_with_index do |each_name, j|
|
14
|
+
changed_class_name += Constants::UNDERSCORE if j.positive?
|
15
|
+
changed_class_name += each_name.to_s.downcase
|
16
|
+
end
|
17
|
+
structure_name += changed_class_name + Constants::DOT
|
15
18
|
end
|
16
|
-
structure_name +=
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
value = Util::DataTypeConverter.post_convert(value, type)
|
19
|
+
structure_name += split_names[split_names.length - 1]
|
20
|
+
type_detail = []
|
21
|
+
type_detail = get_key_json_details(name, json_details[structure_name]) if json_details.key? structure_name
|
22
|
+
unless type_detail.empty?
|
23
|
+
type = type_detail[Constants::TYPE]
|
24
|
+
if !Utility.check_data_type(value,type)
|
25
|
+
details_jo = {}
|
26
|
+
details_jo[Constants::HEADER_OR_PARAM_NAME] = name
|
27
|
+
details_jo[Constants::ERROR_HASH_CLASS] = class_name
|
28
|
+
details_jo[Constants::ERROR_HASH_EXPECTED_TYPE] = type
|
29
|
+
raise SDKException.new(Constants::TYPE_ERROR, nil, details_jo, nil)
|
30
|
+
else
|
31
|
+
value = Util::DataTypeConverter.post_convert(value, type)
|
32
|
+
end
|
31
33
|
end
|
34
|
+
value
|
32
35
|
end
|
33
|
-
value
|
34
|
-
end
|
35
36
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
37
|
+
def get_json_details
|
38
|
+
json_details = Initializer.json_details
|
39
|
+
if json_details.nil?
|
40
|
+
json_details = JSON.parse(File.open(File.join(File.dirname(File.expand_path(__FILE__)), '../../../../../' + Constants::JSON_DETAILS_FILE_PATH)).read)
|
41
|
+
end
|
42
|
+
json_details
|
43
|
+
rescue StandardError => e
|
44
|
+
raise SDKException.new(nil, Constants::EXCEPTION_JSONDETAILS, nil, e)
|
40
45
|
end
|
41
|
-
json_details
|
42
|
-
rescue StandardError => e
|
43
|
-
raise SDKException.new(nil, Constants::EXCEPTION_JSONDETAILS, nil, e)
|
44
|
-
end
|
45
46
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
47
|
+
def get_key_json_details(name, json_details)
|
48
|
+
json_details.each_key do |key|
|
49
|
+
json_detail = json_details[key]
|
50
|
+
if json_detail.key? Constants::NAME
|
51
|
+
return json_detail if name.downcase == json_detail[Constants::NAME].downcase
|
52
|
+
end
|
51
53
|
end
|
52
54
|
end
|
53
55
|
end
|
54
56
|
end
|
55
|
-
end
|
57
|
+
end
|