Module: Bumeran

Includes:
HTTParty
Defined in:
lib/bumeran.rb,
lib/bumeran/version.rb,
lib/bumeran/publication.rb

Defined Under Namespace

Classes: Parser, Publication

Constant Summary collapse

SERVICES =

Generation of service helpers

{
  areas: {object: :area},
  subareas: {object: :subarea, parent: :area, parent_service: :areas},
  paises: {object: :pais},
  zonas: {object: :zona, parent: :pais, parent_service: :paises},
  localidades: {object: :localidad, parent: :zona, parent_service: :zonas},
  plan_publicaciones: {object: :plan_publicacion, parent: :pais, parent_service: :paises},
  denominaciones: {object: :denominacion},
  direcciones: {object: :direccion},
  frecuencias_pago: {object: :frencuencia_pago},
  idiomas: {object: :idioma},
  industrias: {object: :industria},
  niveles_idiomas: {object: :niveles_idioma},
  tipos_trabajo: {object: :tipo_trabajo},
  areas_estudio: {object: :area_estudio},
  estados_estudio: {object: :estado_estudio},
  tipos_estudio: {object: :tipo_estudio}
}
VERSION =
"0.3.6"
@@grant_type =
"password"
@@client_id =
nil
@@username =
nil
@@email =
nil
@@password =
nil
@@access_token =
nil
@@token_type =
nil
@@expires_in =
nil
@@access_token_updated_at =
nil
@@options =
nil
@@last_request =
nil
@@last_response =
nil
@@areas =
{}
@@subareas =
{}
@@paises =
{}
@@zonas =
{}
@@localidades =
{}
@@plan_publicaciones =
{}
@@frecuencias_pago =
{}
@@idiomas =
{}
@@industrias =
{}
@@niveles_idiomas =
{}
@@tipos_trabajo =
{}
@@areas_estudio =
{}
@@estados_estudio =
{}
@@tipos_estudio =
{}
@@direcciones =
{}
@@denominaciones =
{}
@@try_counter =
0

Class Method Summary collapse

Class Method Details

.areasObject

Helpers



286
287
288
# File 'lib/bumeran.rb', line 286

def self.areas
  @@areas.empty? ? get_areas : @@areas
end

.areas_estudioObject



363
364
365
# File 'lib/bumeran.rb', line 363

def self.areas_estudio
  @@areas_estudio.empty? ? get_areas_estudio : @@areas_estudio
end

.create_aviso(json) ⇒ Object

alias



114
115
116
# File 'lib/bumeran.rb', line 114

def self.create_aviso(json)
  Bumeran.create_publication(json)
end

.create_publication(json) ⇒ Object



142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# File 'lib/bumeran.rb', line 142

def self.create_publication(json)
  Bumeran.initialize
  create_publication_path = "/v0/empresas/avisos"
  response = self.put(create_publication_path, @@options.merge(body: json, headers: { "Accept" => "application/json", "Content-Type" => "application/json"}))

  if Parser.parse_response(response)
    case response.code
      when 201
        # "Publication created, All good!"
        return response # body contains id del proceso publicado
      when 200
        # "TODO: Uhm.. no idea, is this good?"
        return response # body contains id del proceso publicado?
    end
  end
end

.denominacionesObject



335
336
337
# File 'lib/bumeran.rb', line 335

def self.denominaciones
  @@denominaciones.empty? ? get_denominaciones : @@denominaciones
end

.destroy_aviso(aviso_id) ⇒ Object

alias



129
130
131
# File 'lib/bumeran.rb', line 129

def self.destroy_aviso(aviso_id)
  Bumeran.destroy_publication(aviso_id)
end

.destroy_publication(publication_id) ⇒ Object



221
222
223
224
225
226
227
# File 'lib/bumeran.rb', line 221

def self.destroy_publication(publication_id)
  Bumeran.initialize
  destroy_publication_path = "/v0/empresas/avisos/#{publication_id}"
  response = self.delete(destroy_publication_path, @@options)

  return Parser.parse_response(response)
end

.direccionesObject



339
340
341
# File 'lib/bumeran.rb', line 339

def self.direcciones
  @@direcciones.empty? ? get_direcciones : @@direcciones
end

.discard_postulacion(postulacion_id) ⇒ Object

alias



625
626
627
# File 'lib/bumeran.rb', line 625

def self.discard_postulacion(postulacion_id)
  Bumeran.discard_postulation(postulacion_id)
end

.discard_postulation(postulacion_id) ⇒ Object



629
630
631
632
633
634
635
# File 'lib/bumeran.rb', line 629

def self.discard_postulation(postulacion_id)
  Bumeran.initialize
  discard_postulaciones_path = "/v0/empresas/postulaciones/#{postulacion_id}/descartar" 
  response = self.put(discard_postulaciones_path, @@options)

  return Parser.parse_response_to_json(response)
end

.environment(use_environment = "production") ⇒ Object



70
71
72
73
74
75
76
77
78
# File 'lib/bumeran.rb', line 70

def self.environment(use_environment="production")
  if use_environment == "production"
    Bumeran.base_uri('https://api.bumeran.com')
  elsif use_environment == "development"
    Bumeran.base_uri('https://developers.bumeran.com')
  else
    Bumeran.base_uri('https://developers.bumeran.com')
  end
end

.estados_estudioObject



367
368
369
# File 'lib/bumeran.rb', line 367

def self.estados_estudio
  @@estados_estudio.empty? ? get_estados_estudio : @@estados_estudio
end

.frecuencias_pagoObject



343
344
345
# File 'lib/bumeran.rb', line 343

def self.frecuencias_pago
  @@frecuencias_pago.empty? ? get_frecuencias_pago : @@frecuencias_pago
end

.generic_find_all_in(objects_sym, parent_object_sym, parent_service_sym, parent_object_id) ⇒ Object

end



255
256
257
258
259
260
261
262
263
264
265
266
267
# File 'lib/bumeran.rb', line 255

def self.generic_find_all_in(objects_sym, parent_object_sym, parent_service_sym, parent_object_id)  
  if !class_variable_get("@@#{objects_sym}").empty? &&  send(parent_object_sym, parent_object_id)[objects_sym.to_s] # if !@@zonas.empty? && pais(pais_id)["zonas"]
    send(parent_object_sym, parent_object_id)[objects_sym.to_s] # pais(pais_id)["zonas"]              #   pais(pais_id)["zonas"]
  else                                                                                                # else
    parent_object = send(parent_service_sym)[parent_object_id]                                        #   pais = paises[pais_id]

    if parent_object[objects_sym.to_s]                                                                #   if pais["zonas"]
      parent_object[objects_sym.to_s].merge!(send("get_#{objects_sym}_in", parent_object_id))         #      pais["zonas"].merge!(get_zonas_in(pais_id)) 
    else                                                                                              #   else
      parent_object[objects_sym.to_s] = send("get_#{objects_sym}_in", parent_object_id)               #      pais["zonas"] = get_zonas_in(pais_id)
    end                                                                                               #   end
  end                                                                                                 # end
end

.generic_find_by_id(objects_sym, object_id) ⇒ Object

GENERIC HELPER



250
251
252
253
# File 'lib/bumeran.rb', line 250

def self.generic_find_by_id(objects_sym, object_id)                       #def self.pais(pais_id)
  object = send(objects_sym).select{|id, content| id == object_id}        #  pais = paises.select{|id, pais| id == pais_id}
  object ? object[object_id] : nil                                        #  pais ? pais[pais_id] : nil
end

.get_areasObject

Servicios comunes Getters



377
378
379
380
381
382
383
384
# File 'lib/bumeran.rb', line 377

def self.get_areas #jobs areas
  Bumeran.initialize
  areas_path = "/v0/empresas/comunes/areas" 
  response = self.get(areas_path, @@options)

  json = Parser.parse_response_to_json(response)
  Parser.parse_json_to_hash(json, @@areas)
end

.get_areas_estudioObject

Servicios de estudios de los postulantes



501
502
503
504
505
506
507
508
# File 'lib/bumeran.rb', line 501

def self.get_areas_estudio 
  Bumeran.initialize
  areas_estudio_path = "/v0/estudios/areasEstudio" 
  response = self.get(areas_estudio_path, @@options)

  json = Parser.parse_response_to_json(response)
  return Parser.parse_json_to_hash(json, @@areas_estudio)
end

.get_aviso(aviso_id) ⇒ Object

alias



119
120
121
# File 'lib/bumeran.rb', line 119

def self.get_aviso(aviso_id)
  Bumeran.get_publication(aviso_id)
end

.get_conocimiento(conocimiento_id, params = nil) ⇒ Object



547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
# File 'lib/bumeran.rb', line 547

def self.get_conocimiento(conocimiento_id, params=nil)
  Bumeran.initialize
  if params  && (params["postulacion_id"] || params["curriculum_id"])
    if params["postulacion_id"]
      postulacion_id = params['postulacion_id'].to_i
      conocimiento_path = "/v0/empresas/postulaciones/#{postulacion_id}/conocimientos/#{conocimiento_id}"
    elsif params["curriculum_id"]
      curriculum_id = params['curriculum_id'].to_i
      conocimiento_path = "/v0/empresas/curriculums/#{curriculum_id}/conocimientos/#{conocimiento_id}"
    end
  else
    puts 'warning, deprecated at 01/09/2015, add postulacion_id to query ej: get_conocimiento(conocimiento_id, "postulacion_id" => postulacion_id)'
    conocimiento_path = "/v0/conocimientos/#{conocimiento_id}"
  end
  response = self.get(conocimiento_path, @@options)

  Parser.parse_response_to_json(response)
end

.get_conocimiento_custom(conocimiento_id, params = nil) ⇒ Object



567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
# File 'lib/bumeran.rb', line 567

def self.get_conocimiento_custom(conocimiento_id, params=nil)
  Bumeran.initialize
  if params  && (params["postulacion_id"] || params["curriculum_id"])
    if params["postulacion_id"]
      postulacion_id = params['postulacion_id'].to_i
      conocimiento_custom_path = "/v0/empresas/postulaciones/#{postulacion_id}/conocimientos/custom/#{conocimiento_id}"
    elsif params["curriculum_id"]
      curriculum_id= params['curriculum_id'].to_i
      conocimiento_custom_path = "/v0/empresas/curriculums/#{curriculum_id}/conocimientos/custom/#{conocimiento_id}"
    end
  else
    puts 'warning, deprecated at 01/09/2015, add postulacion_id to query ej: get_conocimiento(conocimiento_id, "postulacion_id" => postulacion_id)'
    conocimiento_custom_path = "/v0/conocimientos/custom/#{conocimiento_id}"
  end
  response = self.get(conocimiento_custom_path, @@options)

  Parser.parse_response_to_json(response)
end

.get_curriculum(curriculum_id) ⇒ Object



616
617
618
619
620
621
622
# File 'lib/bumeran.rb', line 616

def self.get_curriculum(curriculum_id)
  Bumeran.initialize
  curriculum_path = "/v0/empresas/curriculums/#{curriculum_id}" 
  response = self.get(curriculum_path, @@options)

  return Parser.parse_response_to_json(response)
end

.get_denominacionesObject

Otros servicios



437
438
439
440
441
442
443
444
# File 'lib/bumeran.rb', line 437

def self.get_denominaciones
  Bumeran.initialize
  denominaciones_path = "/v0/empresas/denominaciones"
  response = self.get(denominaciones_path, @@options)

  json = Parser.parse_response_to_json(response)
  return Parser.parse_json_to_hash(json, @@denominaciones)
end

.get_direccionesObject



446
447
448
449
450
451
452
453
# File 'lib/bumeran.rb', line 446

def self.get_direcciones
  Bumeran.initialize
  direcciones_path = "/v0/empresas/direcciones"
  response = self.get(direcciones_path, @@options)

  json = Parser.parse_response_to_json(response)
  return Parser.parse_json_to_hash(json, @@direcciones)
end

.get_estados_estudioObject



510
511
512
513
514
515
516
517
# File 'lib/bumeran.rb', line 510

def self.get_estados_estudio
  Bumeran.initialize
  estados_estudio_path = "/v0/estudios/estadosEstudio" 
  response = self.get(estados_estudio_path, @@options)

  json = Parser.parse_response_to_json(response)
  return Parser.parse_json_to_hash(json, @@estados_estudio)
end

.get_estudio(estudio_id, params = nil) ⇒ Object



528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
# File 'lib/bumeran.rb', line 528

def self.get_estudio(estudio_id, params=nil)
  Bumeran.initialize
  if params  && (params["postulacion_id"] || params["curriculum_id"])
    if params["postulacion_id"]
      postulacion_id = params['postulacion_id'].to_i
      estudio_path = "/v0/empresas/postulaciones/#{postulacion_id}/estudios/#{estudio_id}"
    elsif params["curriculum_id"]
      curriculum_id = params['curriculum_id'].to_i
      estudio_path = "/v0/empresas/curriculums/#{curriculum_id}/estudios/#{estudio_id}"
    end
  else
    puts 'warning, deprecated at 01/09/2015, add postulacion_id to query ej: get_estudio(estudio_id, "postulacion_id" => postulacion_id)'
    estudio_path = "/v0/estudios/#{estudio_id}" 
  end
  response = self.get(estudio_path, @@options)

  return Parser.parse_response_to_json(response)
end

.get_experiencia_laboral(experiencia_laboral_id, params = nil) ⇒ Object

Servicios de la experiencia laboral de los postulantes



588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
# File 'lib/bumeran.rb', line 588

def self.get_experiencia_laboral(experiencia_laboral_id, params=nil)
  Bumeran.initialize
  if params  && (params["postulacion_id"] || params["curriculum_id"])
    if params["postulacion_id"]
      postulacion_id = params['postulacion_id'].to_i
      experiencia_laboral_path = "/v0/empresas/postulaciones/#{postulacion_id}/experienciasLaborales/#{experiencia_laboral_id}"
    elsif params["curriculum_id"]
      curriculum_id= params['curriculum_id'].to_i
      experiencia_laboral_path = "/v0/empresas/curriculums/#{curriculum_id}/experienciasLaborales/#{experiencia_laboral_id}"
    end
  else
    puts 'warning, deprecated at 01/09/2015, add postulacion_id to query ej: get_experiencia_laboral(experiencia_laboral_id, "postulacion_id" => postulacion_id)'
    experiencia_laboral_path = "/v0/experienciasLaborales/#{experiencia_laboral_id}" 
  end
  response = self.get(experiencia_laboral_path, @@options)

  return Parser.parse_response_to_json(response)
end

.get_frecuencias_pagoObject



455
456
457
458
459
460
461
462
# File 'lib/bumeran.rb', line 455

def self.get_frecuencias_pago
  Bumeran.initialize
  frecuencias_pago_path = "/v0/empresas/comunes/frecuenciasPago"
  response = self.get(frecuencias_pago_path, @@options)

  json = Parser.parse_response_to_json(response)
  return Parser.parse_json_to_hash(json, @@frecuencias_pago)
end

.get_idiomasObject



464
465
466
467
468
469
470
471
# File 'lib/bumeran.rb', line 464

def self.get_idiomas
  Bumeran.initialize
  idiomas_path = "/v0/empresas/comunes/idiomas"
  response = self.get(idiomas_path, @@options)

  json = Parser.parse_response_to_json(response)
  return Parser.parse_json_to_hash(json, @@idiomas)
end

.get_industriasObject



473
474
475
476
477
478
479
480
# File 'lib/bumeran.rb', line 473

def self.get_industrias
  Bumeran.initialize
  industrias_path = "/v0/empresas/comunes/industrias"
  response = self.get(industrias_path, @@options)

  json = Parser.parse_response_to_json(response)
  return Parser.parse_json_to_hash(json, @@industrias)
end

.get_localidades_in(zona_id) ⇒ Object



416
417
418
419
420
421
422
423
424
# File 'lib/bumeran.rb', line 416

def self.get_localidades_in(zona_id)
  Bumeran.initialize
  localidades_path = "/v0/empresas/localizaciones/zonas/#{zona_id}/localidades" 
  response = self.get(localidades_path, @@options)

  json = Parser.parse_response_to_json(response)
  Parser.parse_json_to_hash(json, @@localidades) # to save the localidades
  Parser.parse_json_to_hash(json, {})            # to return only the localidades from the zone
end

.get_niveles_idiomasObject



482
483
484
485
486
487
488
489
# File 'lib/bumeran.rb', line 482

def self.get_niveles_idiomas
  Bumeran.initialize
  niveles_idiomas_path = "/v0/empresas/comunes/nivelesIdiomas"
  response = self.get(niveles_idiomas_path, @@options)

  json = Parser.parse_response_to_json(response)
  return Parser.parse_json_to_hash(json, @@niveles_idiomas)
end

.get_paisesObject

Servicios generales asociados a datos de localización



397
398
399
400
401
402
403
404
# File 'lib/bumeran.rb', line 397

def self.get_paises
  Bumeran.initialize
  paises_path = "/v0/empresas/localizaciones/paises" 
  response = self.get(paises_path, @@options)

  paises_json = Parser.parse_response_to_json(response)
  Parser.parse_json_to_hash(paises_json, @@paises)
end

.get_plan_publicaciones_in(pais_id) ⇒ Object



426
427
428
429
430
431
432
433
434
# File 'lib/bumeran.rb', line 426

def self.get_plan_publicaciones_in(pais_id)
  Bumeran.initialize
  plan_publicaciones_path = "/v0/empresas/planPublicaciones/#{pais_id}"
  response = self.get(plan_publicaciones_path, @@options)

  json = Parser.parse_response_to_json(response)
  Parser.parse_json_to_hash(json, @@plan_publicaciones) # to save the zone in the zonas hash
  return Parser.parse_json_to_hash(json, {}) 
end

.get_postulacion(postulacion_id) ⇒ Object

Servicio de postulaciones a los avisos publicados por las empresas



608
609
610
611
612
613
614
# File 'lib/bumeran.rb', line 608

def self.get_postulacion(postulacion_id)
  Bumeran.initialize
  postulacion_path = "/v0/empresas/postulaciones/#{postulacion_id}" 
  response = self.get(postulacion_path, @@options)

  return Parser.parse_response_to_json(response)
end

.get_postulaciones_en_aviso(aviso_id) ⇒ Object

alias



124
125
126
# File 'lib/bumeran.rb', line 124

def self.get_postulaciones_en_aviso(aviso_id)
  Bumeran.get_postulations_in_publication(aviso_id)
end

.get_postulation(postulation_id) ⇒ Object



213
214
215
216
217
218
219
# File 'lib/bumeran.rb', line 213

def self.get_postulation(postulation_id)
  Bumeran.initialize
  get_postulation_path = "/v0/empresas/postulaciones/#{postulation_id}"
  response = self.get(get_postulation_path, @@options)

  return Parser.parse_response_to_json(response)
end

.get_postulations_in_publication(publication_id, page = 0, postulations_per_page = 20) ⇒ Object



205
206
207
208
209
210
211
# File 'lib/bumeran.rb', line 205

def self.get_postulations_in_publication(publication_id, page=0, postulations_per_page=20)
  Bumeran.initialize
  get_postulations_in_publication_path = "/v0/empresas/avisos/#{publication_id}/postulaciones"
  response = self.get(get_postulations_in_publication_path, @@options.merge(query: @@options[:query].merge({page: page, perPage: postulations_per_page})))

  return Parser.parse_response_to_json(response)
end

.get_publication(publication_id) ⇒ Object



197
198
199
200
201
202
203
# File 'lib/bumeran.rb', line 197

def self.get_publication(publication_id)
  Bumeran.initialize
  get_publication_path = "/v0/empresas/avisos/#{publication_id}"
  response = self.get(get_publication_path, @@options)

  return Parser.parse_response_to_json(response)
end

.get_publication_url(publication_id) ⇒ Object



193
194
195
# File 'lib/bumeran.rb', line 193

def self.get_publication_url(publication_id)
  "http://www.laborum.cl/empleos/#{publication_id}.html"
end

.get_subareas_in(area_id) ⇒ Object



386
387
388
389
390
391
392
393
394
# File 'lib/bumeran.rb', line 386

def self.get_subareas_in(area_id)
  Bumeran.initialize
  subareas_path = "/v0/empresas/comunes/areas/#{area_id}/subAreas" 
  response = self.get(subareas_path, @@options)

  json = Parser.parse_response_to_json(response)
  Parser.parse_json_to_hash(json, @@subareas) # to save the subareas in the @@subareas
  Parser.parse_json_to_hash(json, {})         # to return only the subareas in the area
end

.get_tipos_estudioObject



519
520
521
522
523
524
525
526
# File 'lib/bumeran.rb', line 519

def self.get_tipos_estudio
  Bumeran.initialize
  tipos_estudio_path = "/v0/estudios/tiposEstudio" 
  response = self.get(tipos_estudio_path, @@options)

  json = Parser.parse_response_to_json(response)
  return Parser.parse_json_to_hash(json, @@tipos_estudio)
end

.get_tipos_trabajoObject



491
492
493
494
495
496
497
498
# File 'lib/bumeran.rb', line 491

def self.get_tipos_trabajo
  Bumeran.initialize
  tipos_trabajo_path = "/v0/empresas/comunes/tiposTrabajo"
  response = self.get(tipos_trabajo_path, @@options)

  json = Parser.parse_response_to_json(response)
  return Parser.parse_json_to_hash(json, @@tipos_trabajo)
end

.get_zonas_in(pais_id) ⇒ Object



406
407
408
409
410
411
412
413
414
# File 'lib/bumeran.rb', line 406

def self.get_zonas_in(pais_id)
  Bumeran.initialize
  zonas_path = "/v0/empresas/localizaciones/paises/#{pais_id}/zonas" 
  response = self.get(zonas_path, @@options)

  json_zonas = Parser.parse_response_to_json(response)
  Parser.parse_json_to_hash(json_zonas, @@zonas) # to save the zone in the zonas hash
  Parser.parse_json_to_hash(json_zonas, {})      # to return only the zonas from the country
end

.has_valid_access_token?Boolean

Returns:

  • (Boolean)


97
98
99
100
101
102
103
104
# File 'lib/bumeran.rb', line 97

def self.has_valid_access_token?
  if @@access_token && @@access_token_updated_at && @@expires_in
    (Time.current < @@access_token_updated_at  + @@expires_in.seconds + 5.minutes)
  else
    Bumeran.invalidate_access_token!
    false
  end
end

.idiomasObject



347
348
349
# File 'lib/bumeran.rb', line 347

def self.idiomas
  @@idiomas.empty? ? get_idiomas : @@idiomas
end

.industriasObject



351
352
353
# File 'lib/bumeran.rb', line 351

def self.industrias
  @@industrias.empty? ? get_industrias : @@industrias
end

.initializeObject



80
81
82
83
84
85
# File 'lib/bumeran.rb', line 80

def self.initialize
  unless has_valid_access_token?
    
    @@options = { query: {access_token: @@access_token} }
  end
end

.invalidate_access_token!Object



87
88
89
90
# File 'lib/bumeran.rb', line 87

def self.invalidate_access_token!
  @@access_token = nil
  @@access_token_updated_at = nil
end

.localidadesObject



313
314
315
316
317
318
319
320
321
322
323
324
# File 'lib/bumeran.rb', line 313

def self.localidades
  if @@localidades.empty?
    zonas.each do |zona_id, zona|
      begin
        zona["localidades"] ? zona["localidades"].merge!(get_localidades_in(zona_id)) : zona["localidades"] = get_localidades_in(zona_id)
      rescue StandardError => e
        pp "Error at get_localidades_in(#{zona["id"]}): #{e}"
      end
    end
  end
  @@localidades
end

.login(client_id = @@client_id, username = @@username, password = @@password, grant_type = @@grant_type) ⇒ Object



638
639
640
641
642
643
644
645
646
647
648
649
650
# File 'lib/bumeran.rb', line 638

def self.(client_id=@@client_id, username=@@username, password=@@password, grant_type=@@grant_type)
   =  "/v0/empresas/usuarios/login"
  response = self.post(, query: {grant_type: grant_type, client_id: client_id, username: username, password: password})

  if Parser.parse_response_to_json(response)
    # "All good!"
    @@access_token = response["accessToken"]
    @@token_type   = response["tokenType"]
    @@expires_in   = response["expiresIn"]
    @@access_token_updated_at = Time.current
    return @@access_token
  end
end

.niveles_idiomasObject



355
356
357
# File 'lib/bumeran.rb', line 355

def self.niveles_idiomas
  @@niveles_idiomas.empty? ? get_niveles_idiomas : @@niveles_idiomas
end

.paisesObject



299
300
301
# File 'lib/bumeran.rb', line 299

def self.paises
  @@paises.empty? ? get_paises : @@paises
end

.plan_publicacionesObject



326
327
328
329
330
331
332
333
# File 'lib/bumeran.rb', line 326

def self.plan_publicaciones 
  if @@plan_publicaciones.empty?
    paises.each do |pais_id, pais|
      pais["plan_publicaciones"] ? pais["plan_publicaciones"].merge!(get_plan_publicaciones_in(pais_id)) : pais["plan_publicaciones"] = get_plan_publicaciones_in(pais_id)
    end
  end
  @@plan_publicaciones
end

.publicar_aviso(aviso_id, plan_publicacion_id, pais_id) ⇒ Object

alias



109
110
111
# File 'lib/bumeran.rb', line 109

def self.publicar_aviso(aviso_id, plan_publicacion_id, pais_id)
  Bumeran.publish_publication(aviso_id, plan_publicacion_id, pais_id)
end

.publish(json, pais_id, plan_publication_id) ⇒ Object

creates and publish a publication



134
135
136
137
138
# File 'lib/bumeran.rb', line 134

def self.publish(json, pais_id, plan_publication_id)
  publication_id = Bumeran.create_publication(json)
  Bumeran.publish_publication(publication_id, pais_id, plan_publication_id)
  return publication_id
end

.publish_publication(publication_id, pais_id, plan_publication_id) ⇒ Object



176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# File 'lib/bumeran.rb', line 176

def self.publish_publication(publication_id, pais_id, plan_publication_id)
  Bumeran.initialize
  publish_publication_path = "/v0/empresas/avisos/#{publication_id}/publicacion/#{plan_publication_id}"
  response = self.put(publish_publication_path, @@options.merge(query: @@options[:query].merge({paisId: pais_id})))

  if Parser.parse_response(response)
    case response.code
      when 201
        # "Publication created, All good!"
        return response # body contains id del proceso publicado
      when 200
        # "TODO: Uhm.. no idea, is this good?"
        return response # body contains id del proceso publicado?
    end
  end
end

.revalidate_access_tokenObject



92
93
94
95
# File 'lib/bumeran.rb', line 92

def self.revalidate_access_token
  Bumeran.invalidate_access_token! 
  Bumeran.initialize
end

.setup {|_self| ... } ⇒ Object

Default way to setup Bumeran.

Yields:

  • (_self)

Yield Parameters:

  • _self (Bumeran)

    the object that the method was called on



66
67
68
# File 'lib/bumeran.rb', line 66

def self.setup
  yield self
end

.subareasObject



290
291
292
293
294
295
296
297
# File 'lib/bumeran.rb', line 290

def self.subareas
  if @@subareas.empty?
    areas.each do |area_id, area|
      area["subareas"] ? area["subareas"].merge!(get_subareas_in(area_id)) : area["subareas"] = get_subareas_in(area_id)
    end
  end
  @@subareas
end

.tipos_estudioObject



371
372
373
# File 'lib/bumeran.rb', line 371

def self.tipos_estudio 
  @@tipos_estudio.empty? ? get_tipos_estudio : @@tipos_estudio
end

.tipos_trabajoObject



359
360
361
# File 'lib/bumeran.rb', line 359

def self.tipos_trabajo
  @@tipos_trabajo.empty? ? get_tipos_trabajo : @@tipos_trabajo
end

.update_publication(publication_id, json) ⇒ Object



159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
# File 'lib/bumeran.rb', line 159

def self.update_publication(publication_id, json)
  Bumeran.initialize
  update_publication_path = "/v0/empresas/avisos/#{publication_id}"
  response = self.post(update_publication_path, @@options.merge(body: json, headers: { "Accept" => "application/json", "Content-Type" => "application/json"}))

  if Parser.parse_response(response)
    case response.code
      when 201
        # "Publication updated, All good!"
        return response # body contains id del proceso publicado
      when 200
        # "TODO: Uhm.. no idea, is this good?"
        return response # body contains id del proceso publicado?
    end
  end
end

.zonasObject



303
304
305
306
307
308
309
310
311
# File 'lib/bumeran.rb', line 303

def self.zonas
  # zonas by pais
  if @@zonas.empty?
    paises.each do |pais_id, pais|
      pais["zonas"] ? pais["zonas"].merge!(get_zonas_in(pais_id)) : pais["zonas"] = get_zonas_in(pais_id)
    end
  end
  @@zonas
end