X-Git-Url: http://git.auf.org/?p=auf_django_emploi.git;a=blobdiff_plain;f=auf%2Fdjango%2Femploi%2Fapi.py;h=9e9d815c91c28f4f267f4bda33a8f71ce83082e3;hp=fdd97b5c074ec58605a25a523f8a928ff72899be;hb=7f2e1e11b1edf094e867fc8f5dabded118bc7a31;hpb=448f1dfa25d19430ae81315a93281f2d7dc49f19 diff --git a/auf/django/emploi/api.py b/auf/django/emploi/api.py index fdd97b5..9e9d815 100644 --- a/auf/django/emploi/api.py +++ b/auf/django/emploi/api.py @@ -4,29 +4,45 @@ from django.template import Context, RequestContext from django.utils import simplejson from auf.django.emploi import models as emploi -from auf.django.emploi import forms as emploiForms from restkit import request as req +from restkit import Resource +from httplib2 import Http +from urllib import urlencode import datamaster_modeles.models as ref +from poster.encode import MultipartParam +from poster.encode import multipart_encode +import urllib2 +import settings + + +STATUS_OK = '200 OK' class API: def __init__(self, request): self.request = request - def offre_emploi_liste(self): - url = "http://127.0.0.1:8080/api/offre_emploi_liste/" + def offre_emploi_liste(self, env): + + if hasattr(settings, "RECRUTEMENT_URL"): + url = getattr(settings, "RECRUTEMENT_URL")[env] + "offre_emploi_liste/" + else: + raise ImportError, "Could not import settings RECRUTEMENT_PATH" r = req(url) liste_json = r.body_string() - liste_offres = simplejson.loads(liste_json) + try: + liste_offres = simplejson.loads(liste_json) + except: + return [] obj_offres_emploi = [] for offre_dict in liste_offres: offre = emploi.OffreEmploi() - #offre.est_affiche = offre_dict['est_affiche'] - #offre.statut = offre_dict['statut'] + offre.est_affiche = offre_dict['est_affiche'] + offre.statut = offre_dict['statut'] offre.nom = offre_dict['nom'] offre.resume = offre_dict['resume'] offre.description = offre_dict['description'] - #offre.poste = offre_dict['poste'] + offre.poste_nom = offre_dict['poste_nom'] offre.date_limite = offre_dict['date_limite'] offre.region = ref.Region.objects.get(id=offre_dict['region']) offre.bureau = ref.Bureau.objects.get(id=offre_dict['bureau']) @@ -37,20 +53,27 @@ class API: obj_offres_emploi.append(offre) return obj_offres_emploi - def offre_emploi(self, offre_id): - url = "http://127.0.0.1:8080/api/offre_emploi/?id=%s" - r = req(url % (offre_id)) + def offre_emploi(self, offre_id, env): + if hasattr(settings, "RECRUTEMENT_URL"): + url = getattr(settings, "RECRUTEMENT_URL")[env] + "offre_emploi/?id=%s" + else: + raise ImportError, "Could not import settings RECRUTEMENT_PATH" + r = req(url % offre_id) offre_json = r.body_string() - offre_dict = simplejson.loads(offre_json) + + try: + offre_dict = simplejson.loads(offre_json) + except: + return [] obj_offres_emploi = [] offre = emploi.OffreEmploi() - #obj_offre.est_affiche = offre_dict('est_affiche') - #obj_offre.statut = offre_dict('statut') + offre.est_affiche = offre_dict['est_affiche'] + offre.statut = offre_dict['statut'] offre.nom = offre_dict['nom'] offre.resume = offre_dict['resume'] offre.description = offre_dict['description'] - #obj_offre.poste = offre_dict('poste') + offre.poste_nom = offre_dict['poste_nom'] offre.date_limite = offre_dict['date_limite'] offre.region = ref.Region.objects.get(id=offre_dict['region']) offre.bureau = ref.Bureau.objects.get(id=offre_dict['bureau']) @@ -61,8 +84,17 @@ class API: obj_offres_emploi.append(offre) return obj_offres_emploi - def candidat_add(self, offre_id): - url = "http://127.0.0.1:8080/api/candidat_add/?id=%s" % (offre_id) - return redirect(url) - + def candidat_add(self, offre_id, env): + if hasattr(settings, "RECRUTEMENT_URL"): + url = getattr(settings, "RECRUTEMENT_URL")[env] + "candidat_add/%s" + else: + raise ImportError, "Could not import settings RECRUTEMENT_PATH" + r = Resource(url % offre_id) + mp = MultipartParam.from_file('cv', self.request.POST.get('candidat_piece-0-nom')) + datagen, headers = multipart_encode([image_param]) + resp = r.post(payload=self.request.FILES, params_dict=self.request.POST) + if resp.status == STATUS_OK: + candidat_id = simplejson.loads(resp.body_string())['candidat_id'] + return candidat_id + return None