Pièces jointes et 1852:Changer les adresse hardcodé dans l'API
[auf_django_emploi.git] / auf / django / emploi / api.py
index 4304f5b..9e9d815 100644 (file)
@@ -4,22 +4,35 @@ 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:8000/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:
@@ -40,11 +53,18 @@ class API:
             obj_offres_emploi.append(offre)  
         return obj_offres_emploi
 
-    def offre_emploi(self, offre_id):
-        url = "http://127.0.0.1:8000/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()
@@ -64,12 +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:8000/api/candidat_add/%s" % offre_id
-        r = Resource(url)
-        import pdb;pdb.set_trace()
-        resp = r.post(payload=self.request.POST)
-
-        return resp.status    
-
+    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