update paris poc gru connector model (#10073)

This commit is contained in:
Josue Kouka 2016-02-24 16:41:22 +01:00
parent b4e06be793
commit f4ce873eb2
2 changed files with 64 additions and 0 deletions

View File

@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('passerelle_paris_poc_gru', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='parispocgru',
name='consumer_key',
field=models.CharField(default=b'not provided', max_length=128, verbose_name='Consumer Key'),
preserve_default=True,
),
migrations.AddField(
model_name='parispocgru',
name='consumer_secret',
field=models.CharField(default=b'not provided', max_length=128, verbose_name='Consumer Secret'),
preserve_default=True,
),
migrations.AddField(
model_name='parispocgru',
name='url',
field=models.CharField(default=b'not provided', max_length=128, verbose_name='WebService Base Url'),
preserve_default=True,
),
]

View File

@ -13,7 +13,10 @@
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import base64
import requests
from django.db import models
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _
@ -21,6 +24,18 @@ from passerelle.base.models import BaseResource
class ParisPocGru(BaseResource):
url = models.CharField(max_length=128, blank=False,
default="not provided", verbose_name=_('WebService Base Url')
)
consumer_key = models.CharField(max_length=128, blank=False,
default="not provided", verbose_name=_('Consumer Key')
)
consumer_secret = models.CharField(max_length=128, blank=False,
default="not provided", verbose_name=_('Consumer Secret')
)
category = _('Business Process Connectors')
class Meta:
@ -40,3 +55,20 @@ class ParisPocGru(BaseResource):
@classmethod
def get_icon_class(cls):
return 'ressources'
def get_access_token(self):
cred = base64.b64encode('%s:%s' %(self.consumer_key, self.consumer_secret))
response = requests.post(
self.url+'/token',
headers = {
'Authorization': 'Basic %s' %cred,
'Content-Type': 'application/x-www-form-urlencoded'
},
data = {'grant_type': 'client_credentials'}
)
self.access_token = response.json()['access_token']
self.headers = {'Authorization': 'Bearer %s' %(self.access_token)}
return self.access_token