gelistirici:wsapi:devdaysornek_6

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)