GET | /v1/GetDataProcess/{ProcessId} |
---|
import Foundation
import ServiceStack
public class GetDataProcessRequest : IGet, Codable
{
public var processId:Int
required public init(){}
}
public class CurrentDataProcessResponse : DataProcessJob
{
public var type:Int
public var totalRecords:Int
public var originalFileName:String
public var dateStarted:String
public var dateFinished:String
public var dataProcessResultLogs:[DataProcessLog] = []
public var failedCount:Int
public var successCount:Int
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case type
case totalRecords
case originalFileName
case dateStarted
case dateFinished
case dataProcessResultLogs
case failedCount
case successCount
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
type = try container.decodeIfPresent(Int.self, forKey: .type)
totalRecords = try container.decodeIfPresent(Int.self, forKey: .totalRecords)
originalFileName = try container.decodeIfPresent(String.self, forKey: .originalFileName)
dateStarted = try container.decodeIfPresent(String.self, forKey: .dateStarted)
dateFinished = try container.decodeIfPresent(String.self, forKey: .dateFinished)
dataProcessResultLogs = try container.decodeIfPresent([DataProcessLog].self, forKey: .dataProcessResultLogs) ?? []
failedCount = try container.decodeIfPresent(Int.self, forKey: .failedCount)
successCount = try container.decodeIfPresent(Int.self, forKey: .successCount)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if type != nil { try container.encode(type, forKey: .type) }
if totalRecords != nil { try container.encode(totalRecords, forKey: .totalRecords) }
if originalFileName != nil { try container.encode(originalFileName, forKey: .originalFileName) }
if dateStarted != nil { try container.encode(dateStarted, forKey: .dateStarted) }
if dateFinished != nil { try container.encode(dateFinished, forKey: .dateFinished) }
if dataProcessResultLogs.count > 0 { try container.encode(dataProcessResultLogs, forKey: .dataProcessResultLogs) }
if failedCount != nil { try container.encode(failedCount, forKey: .failedCount) }
if successCount != nil { try container.encode(successCount, forKey: .successCount) }
}
}
public class DataProcessJob : Codable
{
public var id:Int
public var gasId:String
public var dateCreated:String
public var processedRecords:Int
public var status:Int
public var statusName:String
public var fileName:String
required public init(){}
}
public class DataProcessLog : Codable
{
public var id:Int
public var dataProcess_Id:Int
public var rowNumber:Int
public var failureReasonId:Int
public var failureReason:String
public var metaData:String
public var metaData2:String
public var hasFailed:Bool
required public init(){}
}
Swift GetDataProcessRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /v1/GetDataProcess/{ProcessId} HTTP/1.1 Host: uat-api-vehicle-mgt-mb-dhc.rapp-customers.co.uk Accept: application/xml
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <CurrentDataProcessResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Mercedes.OS.Vehicle.Shared.POCO"> <DateCreated>String</DateCreated> <FileName>String</FileName> <GasId>String</GasId> <Id>0</Id> <ProcessedRecords>0</ProcessedRecords> <Status>0</Status> <StatusName>String</StatusName> <DataProcessResultLogs> <DataProcessLog> <DataProcess_Id>0</DataProcess_Id> <FailureReason>String</FailureReason> <FailureReasonId>0</FailureReasonId> <HasFailed>false</HasFailed> <Id>0</Id> <MetaData>String</MetaData> <MetaData2>String</MetaData2> <RowNumber>0</RowNumber> </DataProcessLog> </DataProcessResultLogs> <DateFinished>String</DateFinished> <DateStarted>String</DateStarted> <FailedCount>0</FailedCount> <OriginalFileName>String</OriginalFileName> <SuccessCount>0</SuccessCount> <TotalRecords>0</TotalRecords> <Type>0</Type> </CurrentDataProcessResponse>