Commit | Line | Data |
---|---|---|
f77f4b9b | 1 | # -*- encoding: utf-8 -* |
c2141437 | 2 | from django.core import serializers |
f77f4b9b | 3 | from django.shortcuts import render_to_response, redirect, get_object_or_404 |
d46075cb | 4 | from django.template import Context, RequestContext |
f77f4b9b NBV |
5 | from django.utils import simplejson |
6 | from auf.django.emploi import models as emploi | |
c2141437 | 7 | from restkit import request, Resource |
d46075cb | 8 | import datamaster_modeles.models as ref |
c2141437 | 9 | import poster |
3a542b85 | 10 | import urllib2 |
7f25c8a6 | 11 | from auf.django.emploi import settings |
3a542b85 NBV |
12 | |
13 | ||
c2141437 OL |
14 | STATUS_OK = 200 |
15 | ||
16 | def req(*args, **kwargs): | |
17 | timeout = 10 | |
18 | if not kwargs.has_key('timeout'): | |
19 | kwargs['timeout'] = timeout | |
20 | return request(*args, **kwargs) | |
f77f4b9b NBV |
21 | |
22 | class API: | |
c2141437 | 23 | def __init__(self, request, env): |
f77f4b9b | 24 | self.request = request |
c2141437 | 25 | self.env = env |
f77f4b9b | 26 | |
c2141437 OL |
27 | def offre_emploi_liste(self,): |
28 | url = settings.RECRUTEMENT_URLS[self.env] + "offre_emploi_liste/" | |
14e06ff6 | 29 | r = req(url) |
c2141437 OL |
30 | data = r.body_string() |
31 | offres = [offre.object for offre in serializers.deserialize("json", data)] | |
32 | return offres | |
f77f4b9b | 33 | |
30945e50 | 34 | def offre_emploi(self, offre_id, env): |
c2141437 | 35 | url = settings.RECRUTEMENT_URLS[self.env] + "offre_emploi/?id=%s" |
30945e50 | 36 | r = req(url % offre_id) |
f77f4b9b | 37 | offre_json = r.body_string() |
c2141437 OL |
38 | data = r.body_string() |
39 | offres = [o.object for o in serializers.deserialize("json", data)] | |
40 | if len(offres) == 0: | |
41 | return offres[0] | |
30945e50 | 42 | else: |
c2141437 OL |
43 | return offres |
44 | ||
45 | def candidat_add(self, offre_id,): | |
46 | url = settings.RECRUTEMENT_URLS[self.env] + "candidat_add/%s/" % offre_id | |
47 | r = Resource(url) | |
48 | params = self.request.POST | |
7f25c8a6 OL |
49 | for k, up_file in self.request.FILES.items(): |
50 | params[k] = up_file | |
c2141437 OL |
51 | opener = poster.streaminghttp.register_openers() |
52 | datagen, headers = poster.encode.multipart_encode(params) | |
53 | request = urllib2.Request(url, datagen, headers) | |
54 | resp = urllib2.urlopen(request) | |
55 | if resp.code == STATUS_OK: | |
56 | candidats = [c.object for c in serializers.deserialize("json", resp.read())] | |
57 | if len(candidats) == 1: | |
58 | return candidats[0] | |
3a542b85 | 59 | return None |