Örnek 11
Senaryo :
Servise gelen ve servis formu oluşturulan müşterilere servis formunun pdf halini mail olarak gönderelim.
Örnekler diadevdays sunucusu üzerinde çalışmaktadır.
Örnek Kod (python):
# coding=utf-8
import simplejson
import base64
import urllib2
from datetime import datetime
from pprint import pprint
wsAdresMain = 'https://diadevdays.ws.dia.com.tr/api/v3/'
firma_kodu = 4
donem_kodu = 1
apikey = "773f9085-9dc8-4f50-b34d-f7b56da33b5f"
def callWs(wsAdres, postBody):
try:
postBody = simplejson.dumps(postBody, cls=simplejson.JSONEncoder)
req = urllib2.Request(wsAdres,
data=postBody,
headers={"Content-Type": "application/json"})
content = urllib2.urlopen(req).read()
except Exception, e:
print("Exception: {}".format(repr(e)))
wsResult = simplejson.loads(content)
return wsResult
loginBody = {"login" :
{"username": "ws",
"password": "ws",
"disconnect_same_user": True,
"lang": "tr",
"params": {"apikey": apikey}
}
}
loginResult = callWs(wsAdresMain + 'sis/json', loginBody)
sessionID = loginResult['msg']
if not sessionID:
print("Login yapilamadi")
exit(0)
postBody = {"shy_servisformu_listele" :
{"session_id": sessionID,
"firma_kodu": firma_kodu,
"donem_kodu": donem_kodu,
"filters":"",
"sorts": "",
"params": "",
"limit": 1,
"offset": 0
}
}
wsResult = callWs(wsAdresMain + 'shy/json', postBody)
servisFormuResult = wsResult['result']
for servisformu in servisFormuResult:
postBody = {"rpr_tasarimlar_listele" :
{"session_id": sessionID,
"firma_kodu": firma_kodu,
"donem_kodu": donem_kodu,
"filters":[{"field": "raporkodu", "operator": "=", "value": "shy1000a"},
{"field": "dil", "operator": "=", "value": "tr"}],
"sorts": "",
"params": "",
"limit": 1,
"offset": 0
}
}
wsResult = callWs(wsAdresMain + 'rpr/json', postBody)
pprint(wsResult)
tasarimKey = wsResult['result'][0]['_key']
postBody = {"rpr_raporsonuc_getir" :
{"session_id": sessionID,
"firma_kodu": firma_kodu,
"donem_kodu": donem_kodu,
"report_code":"shy1000a",
"tasarim_key": tasarimKey,
"param": {"_key": servisformu['_key']
},
"format_type": "pdf"
}
}
raporResult = callWs(wsAdresMain + 'rpr/json', postBody)
postBody = {"sis_eposta_gonder" :
{"session_id": sessionID,
"firma_kodu": firma_kodu,
"donem_kodu": donem_kodu,
"sender": "bilgi@dia.com.tr",
"cc": servisformu['eposta'],
"bcc": "",
"subject": "%s nolu servis formu raporu hk." % str(servisformu['fisno']),
"body": "%s carisine ait %s fiş nolu servis formu raporu ektedir." % (str(servisformu['carikartkodu']), str(servisformu['fisno'])),
"attachments": [{"base64data": raporResult['result'],
"mime": "application/pdf",
"name": "ServisFormu.pdf"
}]
}
}
wsResult = callWs(wsAdresMain + 'sis/json', postBody)