2019-11-05 12:16:45 +01:00

69 lines
1.9 KiB
VB.net

Imports System.IO
Imports DigitalData.Modules.Interfaces
Imports DigitalData.Modules.Jobs
Imports DigitalData.Modules.Logging
Public Class GraphQLJob
Inherits JobBase
Implements IJob(Of GraphQLArgs)
Public Sub New(LogConfig As LogConfig)
MyBase.New(LogConfig, Nothing, Nothing)
End Sub
Public Sub Start(Args As GraphQLArgs) Implements IJob(Of GraphQLArgs).Start
Dim oInterface As New GraphQLInterface(
_LogConfig, Args.BaseUrl, Args.Email, Args.Password, Args.CertificateFile, Args.CertificatePassword)
Dim oQuery = "query Nls{
niederlassungen(offset: 0, limit: 5) {
niederlassungen {
mdnr
bezeichnung
sparte {
id
name
__typename
}
__typename
}
__typename
}
}"
_Logger.Info("Logging in..")
' Login to get cookie
Dim oLoginResponse = oInterface.Login()
' save cookie for future requests
oInterface.SaveCookies(oLoginResponse.Cookies.Item(0))
_Logger.Info("Getting the data..")
' get the data
Dim oDataResponse = oInterface.GetData(oQuery, "Nls")
Dim oResult As String
' write data to string
Using oStream = oDataResponse.GetResponseStream()
Using oReader As New StreamReader(oStream)
oResult = oReader.ReadToEnd()
End Using
End Using
' TODO: save data to file
_Logger.Info("Response is:")
_Logger.Info(oResult)
_Logger.Info("Logging out..")
' logout
Dim oLogoutResponse = oInterface.Logout()
End Sub
Public Function ShouldStart(Arguments As GraphQLArgs) As Boolean Implements IJob(Of GraphQLArgs).ShouldStart
Return Arguments.Enabled
End Function
End Class