CNI-Itineraries2.1.0

CNI-Itineraries2.1.0

David Hennerconichi iOS devsJoseph Tseng 维护。



  • 作者:
  • David Henner

迁移指南 1.x.x -> 2.0.x

API 变更

实例化

之前(1.1.x)

let bookingManager = CNIBookingManager(
    username: "<username>",
    password: "<password>",
    consumerKey: "<consumerKey>",
    environment: "staging")

之后(2.0.x)

let bookingManager = CNIBookingManager(
    environment: .staging,
    apiToken: token,
    isTesting: true)

每种环境的 apiToken 将单独提供。

获取预订

之前(1.1.x)

bookingManager.getBookingsFor(
      guestId: "1234",
      success: { (itineraries: [CNIBooking]) in

      },
      failure: { (error: Error) in  

      }
)

之后(2.0.x)

let source = "CYTRIC_MOBILE"
let travelerId = "1234"
let partnerId = "5678"

bookingManager.getBookings(
      source: source,
      travelerID: travelerId,
      partnerPrimaryId: partnerId,
      partnerSecondaryIds: nil,
      success: {
        (response: CNIResponse<[CNIBooking]>) in

      },
      failure: {
        (response: CNIResponse<CNIStatus>) in

      }
)

重要通知:source 参数告诉 API 预订来自哪里。此参数存在于以下情况,例如当图书馆客户端从不同来源向我们发送预订时。
例如,Cytric 应该像上述示例中所述,对于所有预订使用 "CYTRIC_MOBILE"

创建预订

之前(1.1.x)

let guest: CNIGuest = ...
let hotel: CNIHotel = ...
let stay: CNIStay = ...
let data = ["guest": guest.deserialize(),
            "hotel": hotel.deserialize(),
            "stay": stay.deserialize()]

bookingManager.postBookingWith(
      data: data,         
      success: { (result: Bool) in

      },
      failure: { (error: Error) in

      }
)

之后(2.0.x)

let booking: CNIBooking = ...
let source = "CYTRIC_MOBILE"

bookingManager.postBooking(
      source: source,
      booking: booking,
      completion: { (response: CNIResponse<CNIStatus>) in

      }
)

重要通知:source 参数告诉 API 预订来自哪里。此参数存在于以下情况,例如当图书馆客户端从不同来源向我们发送预订时。
例如,Cytric 应该像上述示例中所述,对于所有预订使用 "CYTRIC_MOBILE"

删除预约

之前(1.1.x)

let guestId = "1234"
let reservationNumber = "EU-1337"

bookingManager.deleteBookingWith(
      guestId: guestId,
      reservationNumber: reservationNumber,
      success: { (result: Bool) in

      },
      failure: { (error: Error) in

      }
)

之后(2.0.x)

let travelerId = "1234"
let partnerId = "5678"
let reservationNumber = "EU-1337"
let source = "CYTRIC_MOBILE"

bookingManager.cancelBooking(
      source: source,
      travelerId: travelerId,
      reservationNumber: reservationNumber,
      partnerPrimaryId: partnerId,
      partnerSecondaryIds: nil,
      completion: { (response: CNIResponse<CNIStatus>) in

      }
)

重要通知:source 参数告诉 API 预订来自哪里。此参数存在于以下情况,例如当图书馆客户端从不同来源向我们发送预订时。
例如,Cytric 应该像上述示例中所述,对于所有预订使用 "CYTRIC_MOBILE"

基本信息

API响应

每个Itineraries API的请求都会返回CNIResponse&CNIStatus
你可以通过检查CNIResponse.isSuccessful来验证请求是否成功。如果HTTP响应状态码不是2XX,它会返回false

想要获取详细的接口响应内容,可以使用CNIStatus

let response: CNIResponse<CNIStatus> = ...
let status: CNIStatus = response.result

如果请求失败(CNIResponse.isSuccessful == false),可以通过检查CNIStatus.reason获取更详细信息。