51 lines
8.7 KiB
Go
51 lines
8.7 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
"strings"
|
|
"time"
|
|
|
|
"gorm.io/driver/postgres"
|
|
"gorm.io/gorm"
|
|
gormLogger "gorm.io/gorm/logger"
|
|
)
|
|
|
|
const DB_HOST = "localhost"
|
|
const DB_PORT = 5433
|
|
const DB_NAME = "televend"
|
|
const DB_USER = "televend"
|
|
const DB_PASSWORD = "televend"
|
|
|
|
const SAMPLE_QUERY = `SELECT custom_users.user_ptr_id, custom_users.alive, custom_users.external_id, custom_users.role, custom_users.event_types, custom_users.notify_email, custom_users.notify_sms, custom_users.tel, custom_users.weekday_mask, custom_users.timezone, custom_users.errors_subscription, custom_users.product_subscription, custom_users.info_subscription, custom_users.preferred_language, custom_users.api_service, custom_users.uses_boxes, custom_users.mobile_notes, custom_users.assignment_type, custom_users.import_subscription, custom_users.starting_point, custom_users.end_point, custom_users.access_all_company, custom_users.device_info, custom_users.device_notification, custom_users.technician_view, custom_users.pick_and_pack_status, custom_users.call_center_tickets, custom_users.technical_mobile_app, custom_users.cash_collector, custom_users._assigned_clients, custom_users.avatar, custom_users.avatar_thumb, custom_users.starting_point_latitude, custom_users.starting_point_longitude, custom_users.end_point_latitude, custom_users.end_point_longitude, custom_users.visit_plan_id, custom_users.warehouse_id, custom_users.location_warehouse_id, custom_users.company_id, custom_users.user_role_id, custom_users.dashboard_config_id, custom_users.changed_by_id, custom_users.creator_id, custom_users.vehicle_id, custom_users.evoca_horeca_role_id, auth_user_1.first_name || ' ' || auth_user_1.last_name AS anon_1, auth_user_1.id, auth_user_1.first_name, auth_user_1.last_name, auth_user_1.email, auth_user_1.username, auth_user_1.password, auth_user_1.is_active, auth_user_1.is_staff, auth_user_1.is_superuser, auth_user_1.last_login, auth_user_1.date_joined, vending_companies_1.id AS id_1, vending_companies_1.alive AS alive_1, vending_companies_1.logo, vending_companies_1.caption, vending_companies_1.address, vending_companies_1.city, vending_companies_1.phone, vending_companies_1.email AS email_1, vending_companies_1.external_id AS external_id_1, vending_companies_1.enabled, vending_companies_1.note, vending_companies_1.aes_key, vending_companies_1.truck_stock, vending_companies_1.type, vending_companies_1.country_code, vending_companies_1.currency, vending_companies_1.timezone AS timezone_1, vending_companies_1.wallet_creation, vending_companies_1.urgency_limit_3, vending_companies_1.urgency_limit_4, vending_companies_1.expiry_affects_urgency, vending_companies_1.day_urg_3, vending_companies_1.day_urg_4, vending_companies_1.facing_affects_urgency, vending_companies_1.facing_urgency_3, vending_companies_1.facing_urgency_4, vending_companies_1.working_days, vending_companies_1.cashreport_time, vending_companies_1.urgency_calculation_time, vending_companies_1.urgency_calculation_times, vending_companies_1.decimal_places, vending_companies_1.default_max_credit, vending_companies_1.televend_keep_alive_addresses, vending_companies_1.undefined_column_forced_warning, vending_companies_1.status, vending_companies_1.route_microservice, vending_companies_1.light_speed_integration, vending_companies_1.amiclo, vending_companies_1.is_eva_dts_readout_enabled, vending_companies_1.eva_dts_readout_time_array, vending_companies_1.extra_pricelists_setting, vending_companies_1.column_mapping_setting, vending_companies_1.days_between_cc, vending_companies_1.integration_newis, vending_companies_1.integration_wallet, vending_companies_1.horeca, vending_companies_1.warehouse_management_enabled, vending_companies_1.coffee_company, vending_companies_1.vat_number, vending_companies_1.access_id, user_role_template_1.id AS id_2, user_role_template_1.name, user_role_template_1.alive AS alive_2, user_role_template_1.machine_view, user_role_template_1.machine_edit, user_role_template_1.machine_device_view, user_role_template_1.machine_device_edit, user_role_template_1.machine_stock_view, user_role_template_1.machine_stock_edit, user_role_template_1.machine_planogram_view, user_role_template_1.machine_planogram_edit, user_role_template_1.product_view, user_role_template_1.product_edit, user_role_template_1.report_refill_log_view, user_role_template_1.report_vend_revenue_view, user_role_template_1.report_overview_view, user_role_template_1.report_vend_list_view, user_role_template_1.cash_details_view, user_role_template_1.event_view, user_role_template_1.event_edit, user_role_template_1.route_view, user_role_template_1.route_view_assigned, user_role_template_1.route_edit, user_role_template_1.user_view, user_role_template_1.user_edit, user_role_template_1.machine_assign_view, user_role_template_1.machine_assign_edit, user_role_template_1.cash_flow_view, user_role_template_1.cash_flow_induce, user_role_template_1.cash_conformity_view, user_role_template_1.erp_integration_view, user_role_template_1.erp_integration_edit, user_role_template_1.filling_route_assign_view, user_role_template_1.event_assign_view, user_role_template_1.report_builder_view, user_role_template_1.administration_view, user_role_template_1.importer, user_role_template_1.importer_edit, user_role_template_1.importer_view, user_role_template_1.task_manager_edit, user_role_template_1.task_manager_view, user_role_template_1.warehouse_edit, user_role_template_1.warehouse_view, user_role_template_1.meter_readings_edit, user_role_template_1.meter_readings_view, user_role_template_1.planogram_analysis_view, user_role_template_1.report_routing_reports_view, user_role_template_1.product_view_assigned, user_role_template_1.routing_configuration_view, user_role_template_1.routing_configuration_edit, user_role_template_1.report_transaction_list_view, user_role_template_1.tax_report_generator_view, user_role_template_1.global_manage_brand_model_view, user_role_template_1.global_manage_brand_model_edit, user_role_template_1.televend_cloud_application, user_role_template_1.evoca_horeca_application, user_role_template_1.call_centre_configuration_edit, user_role_template_1.call_centre_configuration_view, user_role_template_1.contract_list_edit, user_role_template_1.contract_list_view, user_role_template_1.credit_refund_view, user_role_template_1.fiscal_setup_edit, user_role_template_1.fiscal_setup_view, user_role_template_1.event_configuration_edit, user_role_template_1.event_configuration_view, user_role_template_1.custom_forms_edit, user_role_template_1.custom_forms_view, user_role_template_1.planer_edit, user_role_template_1.planer_view, user_role_template_1.spare_parts_edit, user_role_template_1.spare_parts_view, user_role_template_1.stream_edit, user_role_template_1.stream_view, user_role_template_1.moneybag_tracking_view, user_role_template_1.reports_generator_view, user_role_template_1.technical_center_reports_view, user_role_template_1.asset_management_edit, user_role_template_1.asset_management_view, user_role_template_1.horeca_general_dashboard_view, user_role_template_1.horeca_machine_dashboard_view, user_role_template_1.horeca_machine_list_view, user_role_template_1.horeca_events_view, user_role_template_1.horeca_beverages_view, user_role_template_1.horeca_machine_setup_view, user_role_template_1.horeca_machine_setup_edit, user_role_template_1.horeca_administration_view, user_role_template_1.horeca_administration_edit, user_role_template_1.horeca_reports_view, user_role_template_1.horeca_users_view, user_role_template_1.horeca_users_edit, user_role_template_1.fiscal_data_collection_edit, user_role_template_1.fiscal_data_collection_view, user_role_template_1.fiscal_devices_edit, user_role_template_1.fiscal_devices_view, user_role_template_1.product_warehouse_edit, user_role_template_1.product_warehouse_view
|
|
FROM custom_users JOIN auth_user ON custom_users.user_ptr_id = auth_user.id LEFT OUTER JOIN auth_user AS auth_user_1 ON auth_user_1.id = custom_users.user_ptr_id LEFT OUTER JOIN vending_companies AS vending_companies_1 ON vending_companies_1.id = custom_users.company_id LEFT OUTER JOIN user_role_template AS user_role_template_1 ON user_role_template_1.id = custom_users.user_role_id
|
|
WHERE auth_user.email = lower('superdeveloper1@intis.hr') AND custom_users.alive = true`
|
|
|
|
func main() {
|
|
var connectionString = strings.Join([]string{
|
|
"postgres://",
|
|
DB_USER, ":",
|
|
DB_PASSWORD, "@",
|
|
DB_HOST, ":",
|
|
strconv.Itoa(DB_PORT), "/",
|
|
DB_NAME,
|
|
"?sslmode=disable",
|
|
"&TimeZone=UTC",
|
|
}, "")
|
|
|
|
DBConn, err := gorm.Open(postgres.Open(connectionString), &gorm.Config{
|
|
Logger: gormLogger.Default.LogMode(gormLogger.Info),
|
|
})
|
|
if err != nil {
|
|
panic(fmt.Sprintf("Error connecting to database: %s. Terminating!", err))
|
|
}
|
|
|
|
db, _ := DBConn.DB()
|
|
|
|
start := time.Now()
|
|
db.Exec(SAMPLE_QUERY)
|
|
elapsed := time.Since(start)
|
|
|
|
fmt.Printf("Execution time: %s\n", elapsed)
|
|
}
|