0001 public class SQL { 0002 0003 public var table: String 0004 public var operation
SQL.swift:16 self.table = tableSQL.swift:36 query.append("`\(self.table)`"): Operation 0005 0006 public var filters
SQL.swift:15 self.operation = operationSQL.swift:22 switch self.operation {SQL.swift:40 if self.operation == .INSERT {SQL.swift:59 } else if self.operation == .UPDATE {: [Filter]? 0007 public var limit
SQL.swift:84 if let filters = self.filters {: Int? 0008 public var data
SQL.swift:113 if let limit = self.limit {: [String: String]? 0009 0010 public enum Operation
SQL.swift:38 if let data = self.data {{ 0011 case SELECT
SQL.swift:4 public var operation: OperationSQL.swift:14 public init(operation: Operation, table: String) {, DELETE
SQL.swift:23 case .SELECT:, INSERT
SQL.swift:25 case .DELETE:, UPDATE
SQL.swift:27 case .INSERT:SQL.swift:40 if self.operation == .INSERT {0012 } 0013 0014 public init(operation: Operation, table: String) { 0015 self.operation = operation 0016 self.table = table 0017 } 0018 0019 public var query: String { 0020 var query: [String] = [] 0021 0022 switch self.operation { 0023 case .SELECT: 0024 query.append("SELECT * FROM") 0025 case .DELETE: 0026 query.append("DELETE FROM") 0027 case .INSERT: 0028 query.append("INSERT INTO") 0029 case .UPDATE: 0030 query.append("UPDATE") 0031 } 0032 //UPDATE table_name 0033 // SET column1 = value1, column2 = value2...., columnN = valueN 0034 // WHERE [condition]; 0035 0036 query.append("`\(self.table)`") 0037 0038 if let data = self.data { 0039 0040 if self.operation == .INSERT { 0041 0042 var columns: [String] = [] 0043 var values: [String] = [] 0044 0045 for (key, val) in data { 0046 columns.append("`\(key)`") 0047 0048 if val == "NULL" { 0049 values.append("\(val)") 0050 } else { 0051 values.append("'\(val)'") 0052 } 0053 } 0054 0055 let columnsString = columns.joinWithSeparator(", ") 0056 let valuesString = values.joinWithSeparator(", ") 0057 query.append("(\(columnsString)) VALUES (\(valuesString))") 0058 0059 } else if self.operation == .UPDATE { 0060 0061 var updates: [String] = [] 0062 0063 for (key, val) in data { 0064 0065 let value: String 0066 0067 if val == "NULL" { 0068 value = "\(val)" 0069 } else { 0070 value = "'\(val)'" 0071 } 0072 0073 updates.append("`\(key)` = \(value)") 0074 0075 } 0076 0077 let updatesString = updates.joinWithSeparator(", ") 0078 query.append("SET \(updatesString)") 0079 0080 } 0081 0082 } 0083 0084 if let filters = self.filters { 0085 if filters.count > 0 { 0086 query.append("WHERE") 0087 } 0088 0089 for (index, filter) in filters.enumerate() { 0090 if let filter = filter as? CompareFilter { 0091 var operation: String = "" 0092 switch filter.comparison { 0093 case .Equals: 0094 operation = "=" 0095 case .NotEquals: 0096 operation = "!=" 0097 case .GreaterThanOrEquals: 0098 operation = ">=" 0099 case .LessThanOrEquals: 0100 operation = "<=" 0101 case .GreaterThan: 0102 operation = ">" 0103 case .LessThan: 0104 operation = "<" 0105 } 0106 0107 query.append((index > 0) ? " AND" : "") 0108 query.append(" `\(filter.key)` \(operation) '\(filter.value)'") 0109 } 0110 } 0111 } 0112 0113 if let limit = self.limit { 0114 query.append("LIMIT \(limit)") 0115 } 0116 0117 let queryString = query.joinWithSeparator(" ") 0118 0119 self.log(queryString) 0120 0121 return queryString + ";" 0122 } 0123 0124 func log
SQL.swift:29 case .UPDATE:SQL.swift:59 } else if self.operation == .UPDATE {(message: Any) { 0125 print("[SQL] \(message)") 0126 } 0127 }
SQL.swift:119 self.log(queryString)