22//! ========
33//! The Terminal API allows you to build delightful in-person payment experiences.
44
5- use std:: sync:: Arc ;
5+ use std:: { marker :: PhantomData , sync:: Arc } ;
66
77use crate :: {
88 EventRequest , FetchEventStatusResponseData , FetchTerminalStatusResponseData , HttpClient ,
@@ -164,17 +164,18 @@ impl<T: HttpClient + Default> TerminalEndpoints<T> {
164164 & self ,
165165 terminal_id : String ,
166166 update_request : UpdateTerminalRequest ,
167- ) -> PaystackResult < String > {
167+ ) -> PaystackResult < PhantomData < String > > {
168168 let url = format ! ( "{}/{}" , self . base_url, terminal_id) ;
169169 let body = serde_json:: to_value ( update_request)
170170 . map_err ( |e| PaystackAPIError :: Terminal ( e. to_string ( ) ) ) ?;
171171
172- let response = self . http . post ( & url, & self . key , & body) . await ;
172+ let response = self . http . put ( & url, & self . key , & body) . await ;
173173
174174 match response {
175175 Ok ( response) => {
176- let parsed_response: Response < String > = serde_json:: from_str ( & response)
177- . map_err ( |e| PaystackAPIError :: Terminal ( e. to_string ( ) ) ) ?;
176+ let parsed_response: Response < PhantomData < String > > =
177+ serde_json:: from_str ( & response)
178+ . map_err ( |e| PaystackAPIError :: Terminal ( e. to_string ( ) ) ) ?;
178179
179180 Ok ( parsed_response)
180181 }
@@ -188,7 +189,10 @@ impl<T: HttpClient + Default> TerminalEndpoints<T> {
188189 /// - `serial_number`: The device serial number
189190 /// NB: The generic for the result here is a `String`, because there is no data field in the response from the API.
190191 /// The string will be ignored because the underlying `data` field in the `response` is an `Option`.
191- pub async fn commission_terminal ( & self , serial_number : String ) -> PaystackResult < String > {
192+ pub async fn commission_terminal (
193+ & self ,
194+ serial_number : String ,
195+ ) -> PaystackResult < PhantomData < String > > {
192196 let url = format ! ( "{}/commission_device" , self . base_url) ;
193197 let body = serde_json:: json!( {
194198 "serial_number" : serial_number
@@ -198,8 +202,9 @@ impl<T: HttpClient + Default> TerminalEndpoints<T> {
198202
199203 match response {
200204 Ok ( response) => {
201- let parsed_response: Response < String > = serde_json:: from_str ( & response)
202- . map_err ( |e| PaystackAPIError :: Terminal ( e. to_string ( ) ) ) ?;
205+ let parsed_response: Response < PhantomData < String > > =
206+ serde_json:: from_str ( & response)
207+ . map_err ( |e| PaystackAPIError :: Terminal ( e. to_string ( ) ) ) ?;
203208
204209 Ok ( parsed_response)
205210 }
@@ -213,7 +218,10 @@ impl<T: HttpClient + Default> TerminalEndpoints<T> {
213218 /// - `serial_number`: The device serial number
214219 /// NB: The generic for the result here is a `String`, because there is no data field in the response from the API.
215220 /// The string will be ignored because the underlying `data` field in the `response` is an `Option`.
216- pub async fn decommission_terminal ( & self , serial_number : String ) -> PaystackResult < String > {
221+ pub async fn decommission_terminal (
222+ & self ,
223+ serial_number : String ,
224+ ) -> PaystackResult < PhantomData < String > > {
217225 let url = format ! ( "{}/decommission_device" , self . base_url) ;
218226 let body = serde_json:: json!( {
219227 "serial_number" : serial_number
@@ -223,8 +231,9 @@ impl<T: HttpClient + Default> TerminalEndpoints<T> {
223231
224232 match response {
225233 Ok ( response) => {
226- let parsed_response: Response < String > = serde_json:: from_str ( & response)
227- . map_err ( |e| PaystackAPIError :: Terminal ( e. to_string ( ) ) ) ?;
234+ let parsed_response: Response < PhantomData < String > > =
235+ serde_json:: from_str ( & response)
236+ . map_err ( |e| PaystackAPIError :: Terminal ( e. to_string ( ) ) ) ?;
228237
229238 Ok ( parsed_response)
230239 }
0 commit comments