Ö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)