Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.84 KB | None | 0 0
  1. //
  2. // ViewController.swift
  3. // ShopPeer
  4. //
  5. // Created by Lukas Bimba on 6/3/17.
  6. // Copyright © 2017 Lukas Bimba. All rights reserved.
  7. //
  8.  
  9. import UIKit
  10. import SnapKit
  11. import CoreLocation
  12. import MapKit
  13. import Firebase
  14.  
  15. class ViewController: UIViewController, UITextFieldDelegate {
  16.  
  17.  
  18. @IBOutlet weak var firstName: UITextField!
  19. @IBOutlet weak var lastName: UITextField!
  20. @IBOutlet weak var companyPosition: UITextField!
  21.  
  22. @IBOutlet weak var emailTextField: UITextField!
  23. @IBOutlet weak var passwordTextField: UITextField!
  24. @IBOutlet weak var businessName: UITextField!
  25. @IBOutlet weak var businessStreet: UITextField!
  26. @IBOutlet weak var businessCity: UITextField!
  27. @IBOutlet weak var businessState: UITextField!
  28. @IBOutlet weak var businessZIP: UITextField!
  29. @IBOutlet weak var businessCountry: UITextField!
  30. @IBOutlet weak var businessPhone: UITextField!
  31. @IBOutlet weak var businessWebsite: UITextField!
  32. @IBOutlet weak var businessLatitude: UITextField!
  33. @IBOutlet weak var businessLongitude: UITextField!
  34.  
  35. // Social Media
  36. @IBOutlet weak var facebookUrl: UITextField!
  37. @IBOutlet weak var twitterUrl: UITextField!
  38. @IBOutlet weak var instagramUrl: UITextField!
  39. @IBOutlet weak var googleUrl: UITextField!
  40. @IBOutlet weak var yelpUrl: UITextField!
  41. @IBOutlet weak var foursquareUrl: UITextField!
  42. @IBOutlet weak var snapchatUrl: UITextField!
  43.  
  44. @IBOutlet weak var facebookButton: UIButton!
  45. @IBOutlet weak var twitterButton: UIButton!
  46. @IBOutlet weak var instagramButton: UIButton!
  47. @IBOutlet weak var googleButton: UIButton!
  48. @IBOutlet weak var yelpButton: UIButton!
  49. @IBOutlet weak var foursquareButton: UIButton!
  50. @IBOutlet weak var snapchatButton: UIButton!
  51.  
  52.  
  53. let isApproved = "Pending"
  54. let picker = LocationPicker()
  55. var ref: FIRDatabaseReference!
  56. var user: FIRUser!
  57.  
  58. override func viewDidLoad() {
  59. super.viewDidLoad()
  60.  
  61. ref = FIRDatabase.database().reference()
  62. user = FIRAuth.auth()?.currentUser
  63.  
  64. self.firstName.delegate = self
  65. self.lastName.delegate = self
  66. self.companyPosition.delegate = self
  67. self.emailTextField.delegate = self
  68. self.passwordTextField.delegate = self
  69. self.businessName.delegate = self
  70. self.businessStreet.delegate = self
  71. self.businessCity.delegate = self
  72. self.businessState.delegate = self
  73. self.businessZIP.delegate = self
  74. self.businessCountry.delegate = self
  75. self.businessPhone.delegate = self
  76. self.businessWebsite.delegate = self
  77. self.businessLatitude.delegate = self
  78. self.businessLongitude.delegate = self
  79.  
  80. /*
  81. self.facebookUrl.delegate = self
  82. self.twitterUrl.delegate = self
  83. self.instagramUrl.delegate = self
  84. self.googleUrl.delegate = self
  85. self.yelpUrl.delegate = self
  86. self.foursquareUrl.delegate = self
  87. self.snapchatUrl.delegate = self
  88. */
  89. // Do any additional setup after loading the view.
  90.  
  91. }
  92.  
  93. override func viewDidAppear(_ animated: Bool) {
  94. super.viewDidAppear(animated)
  95. picker.delegate = self
  96. }
  97. @IBAction func selectLocation(_ sender: Any) {
  98. present(picker, animated: true, completion: nil)
  99. }
  100.  
  101. @IBAction func createAccount(_ sender: Any) {
  102. let email = self.emailTextField.text!
  103. let password = self.passwordTextField.text!
  104.  
  105. if firstName.text == "" {
  106. CommonUtils.sharedUtils.showAlert(self, title: "Error", message: "Please Enter Your First Name.")
  107. }
  108. if lastName.text == "" {
  109. CommonUtils.sharedUtils.showAlert(self, title: "Error", message: "Please Enter Your Last Name.")
  110. }
  111. if companyPosition.text == "" {
  112. CommonUtils.sharedUtils.showAlert(self, title: "Error", message: "Please Enter Your Company Position.")
  113. }
  114. if businessName.text == "" {
  115. CommonUtils.sharedUtils.showAlert(self, title: "Error", message: "Please Enter The Business Name.")
  116. }
  117. if businessStreet.text == "" {
  118. CommonUtils.sharedUtils.showAlert(self, title: "Error", message: "Please Enter The Business's Street.")
  119. }
  120. if businessCity.text == "" {
  121. CommonUtils.sharedUtils.showAlert(self, title: "Error", message: "Please Enter The City.")
  122. }
  123. if businessState.text == "" {
  124. CommonUtils.sharedUtils.showAlert(self, title: "Error", message: "Please Enter The State.")
  125. }
  126. if businessZIP.text == "" {
  127. CommonUtils.sharedUtils.showAlert(self, title: "Error", message: "Please Enter The ZIP.")
  128. }
  129. if businessPhone.text == "" {
  130. CommonUtils.sharedUtils.showAlert(self, title: "Error", message: "Please Enter The Business's Phone.")
  131. }
  132. if businessWebsite.text == "" {
  133. CommonUtils.sharedUtils.showAlert(self, title: "Error", message: "Please Enter The Business Website.")
  134. }
  135. if businessLatitude.text == "" {
  136. CommonUtils.sharedUtils.showAlert(self, title: "Error", message: "Please Enter The Business Latitude.")
  137. }
  138. if businessLongitude.text == "" {
  139. CommonUtils.sharedUtils.showAlert(self, title: "Error", message: "Please Enter The Business Longitude.")
  140. }
  141. if email != "" && password != "" && self.firstName.text != "" && self.lastName.text != "" && self.companyPosition.text != "" && self.businessName.text != "" && self.businessStreet.text != "" && self.businessCity.text != "" && self.businessState.text != "" && self.businessZIP.text! != "" && self.businessPhone.text != "" && self.businessWebsite.text != "" && self.businessLatitude.text != "" && self.businessLongitude.text != "" {
  142. self.ref.child("Businesses").queryOrdered(byChild: "businessLatitude").queryEqual(toValue: self.businessLatitude.text!).observeSingleEvent(of: .value, with: { (snapshot) in
  143.  
  144. if(snapshot.value! is NSNull){
  145. print("Latitude doesn't exists")
  146. CommonUtils.sharedUtils.showProgress(self.view, label: "Registering...")
  147. FIRAuth.auth()?.createUser(withEmail: email, password: password, completion: { (user, error) in
  148. if error == nil {
  149. FIREmailPasswordAuthProvider.credential(withEmail: email, password: password)
  150. self.ref.child("Businesses").child(user!.uid).setValue(["firstName":self.firstName.text!,"lastName":self.lastName.text!, "companyPosition":self.companyPosition.text!,"businessName":self.businessName.text!, "businessStreet":self.businessStreet.text!, "businessCity":self.businessCity.text!, "businessState":self.businessState.text!, "businessZIP":self.businessZIP.text!, "businessPhone":self.businessPhone.text!, "businessWebsite":self.businessWebsite.text!,"businessLatitude":self.businessLatitude.text!, "businessLongitude":self.businessLongitude.text!, "approvalStatus":self.isApproved, "email":email ])
  151. CommonUtils.sharedUtils.hideProgress()
  152. let photoViewController = self.storyboard?.instantiateViewController(withIdentifier: "BusinessProfile")
  153. self.navigationController?.pushViewController(photoViewController!, animated: true)
  154. } else {
  155. DispatchQueue.main.async(execute: {() -> Void in
  156. CommonUtils.sharedUtils.hideProgress()
  157. CommonUtils.sharedUtils.showAlert(self, title: "Error", message: (error?.localizedDescription)!)
  158. })
  159. }
  160. })
  161. }
  162. else{
  163. print("Latitude exists")
  164. CommonUtils.sharedUtils.hideProgress()
  165. CommonUtils.sharedUtils.showAlert(self, title: "Error", message: "This Place Is Already Registered")
  166. }
  167. })
  168. }
  169. else {
  170. let alert = UIAlertController(title: "Error", message: "Enter email & password!", preferredStyle: .alert)
  171. let action = UIAlertAction(title: "OK", style: .default, handler: nil)
  172. alert.addAction(action)
  173. }
  174. }
  175.  
  176.  
  177. // Hide Keyboard when User Touches Outside of Keyboard
  178. override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
  179. self.view.endEditing(true)
  180. }
  181.  
  182. // Hide Keybaord when User Taps Return Key
  183. func textFieldShouldReturn(_ textField: UITextField) -> Bool {
  184. if textField == firstName {
  185. firstName.resignFirstResponder()
  186. lastName.becomeFirstResponder()
  187. }
  188. if textField == lastName {
  189. lastName.resignFirstResponder()
  190. companyPosition.becomeFirstResponder()
  191. }
  192. if textField == companyPosition {
  193. companyPosition.resignFirstResponder()
  194. emailTextField.becomeFirstResponder()
  195. }
  196. if textField == emailTextField {
  197. emailTextField.resignFirstResponder()
  198. passwordTextField.becomeFirstResponder()
  199. }
  200. passwordTextField.resignFirstResponder()
  201. businessName.resignFirstResponder()
  202. businessStreet.resignFirstResponder()
  203. businessCity.resignFirstResponder()
  204. businessState.resignFirstResponder()
  205. businessZIP.resignFirstResponder()
  206. businessCountry.resignFirstResponder()
  207. businessPhone.resignFirstResponder()
  208. businessWebsite.resignFirstResponder()
  209. businessLatitude.resignFirstResponder()
  210. businessLongitude.resignFirstResponder()
  211.  
  212. /*
  213. facebookUrl.resignFirstResponder()
  214. twitterUrl.resignFirstResponder()
  215. instagramUrl.resignFirstResponder()
  216. googleUrl.resignFirstResponder()
  217. yelpUrl.resignFirstResponder()
  218. foursquareUrl.resignFirstResponder()
  219. snapchatUrl.resignFirstResponder()
  220. */
  221. return(true)
  222. }
  223. }
  224.  
  225. extension ViewController: LocationPickerDelegate {
  226. func locationPicker(_ locationPicker: LocationPicker, didSelectLocation location: Location) {
  227. print(location)
  228.  
  229. businessName.text = location.name
  230. businessStreet.text = location.streetAddress
  231. businessCity.text = location.city
  232. businessState.text = location.state
  233. businessZIP.text = location.postalCode
  234. businessCountry.text = location.country
  235. businessPhone.text = location.phoneNumber
  236. businessWebsite.text = location.website
  237. businessLatitude.text = location.coordinate.latitude.description
  238. businessLongitude.text = location.coordinate.longitude.description
  239.  
  240. }
  241. func locationPickerWillClose(_ locationPicker: LocationPicker) {
  242. print("Closing")
  243. }
  244.  
  245. func locationPickerDidClose(_ locationPicker: LocationPicker) {
  246. print("Closed")
  247. }
  248. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement