Skip to main content

Posts

Showing posts from November, 2022

Swift API Manager -Alamofire-Refresh Token-With TestCases

  import Foundation import KeychainAccess enum APIError : Error { case accessTokenExpired case networkError // Add more error cases as needed } class APIManager { private let keychain = Keychain (service: "com.example.app.refreshToken" ) private let refreshTokenKey = "refreshToken" private var accessToken: String ? func callAPI < T : Codable >( urlString : String , method : String , parameters : [ String : Any ] ? , completion : @escaping ( Result < T , APIError >) -> Void ) { guard let url = URL (string: urlString) else { completion(.failure(.networkError)) return } var request = URLRequest (url: url) request.httpMethod = method // Add access token to the request headers if available if let token = accessToken { request.setValue( "Bearer \(token) " , forHTTPHeaderField: "Aut...

How to Save, Fetch, Update and Delete data from Core Data using Swift 5.0

  Getting Started  Save, Fetch, Update and Delete  Core Data in Swift 5.0 Core Data is NOT an SQLite database. it is a graphical and persistence framework. CURD in swift (Create, Update, Retrieve, Delete) //MARK: -  Save  User Info Data func   addData ( user_name :  String ,  user_email :  String ,  user_dob :  String ,  imageData :  NSData ) {                   guard   let  appDelegate =  UIApplication . shared . delegate   as ?  AppDelegate   else  {              return          }          let  managedContext  = appDelegate. persistentContainer . viewContext          let  entity =  NSEntityDescription . entity ( forEntityName :  "UserInfo" ,  in : managedContext)!          ...

Array Type JSON Parsing & JSON Serialization

     func   callApi (){         let sessionConfig = URLSessionConfiguration . default         let sessionUrl = URLSession ( configuration : sessionConfig)         let url = URL ( string : "URL" )!         let request: URLRequest = URLRequest ( url :url)         let task = sessionUrl. dataTask ( with : request){             (data, response, error) in             if error != nil {                 print (error!. localizedDescription )             } else {                 do {                     if let json = try ! JSONSerialization . jsonObject ( with : data!, options : . allowFragments ) as ? [ Any ] {            ...