diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/GetPaymentController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/GetPaymentController.cs new file mode 100644 index 0000000..af0f78a --- /dev/null +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/GetPaymentController.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using TeamDBAwesome.SqlService; +using TeamDBAwesome.Models; +using Newtonsoft.Json; + +namespace TeamDBAwesome.Controllers +{ + public class GetPaymentController : ApiController + { + public HttpResponseMessage Get(int CustomerID) + { + HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK); + + MySqlService sql = new MySqlService(); + + List payList = sql.GetPayTypes(CustomerID); + + string serialzed = JsonConvert.SerializeObject(payList); + + message.Content = new StringContent(serialzed); + + return message; + } + } +} diff --git a/TeamDBAwesome/TeamDBAwesome/Controllers/TestController.cs b/TeamDBAwesome/TeamDBAwesome/Controllers/TestController.cs index 0a2ca67..ed992c8 100644 --- a/TeamDBAwesome/TeamDBAwesome/Controllers/TestController.cs +++ b/TeamDBAwesome/TeamDBAwesome/Controllers/TestController.cs @@ -15,18 +15,13 @@ namespace TeamDBAwesome.Controllers // GET: api/Test public HttpResponseMessage Get() { - Payment test = new Payment - { - CustomerId = 7, - Type = "GP", - token = "54321", - email = "fuck@fuck.com", - is_default = 1 - }; + MySqlService sqlS = new MySqlService(); - sqlS.AddPayment(test); + sqlS.GetPayTypes(7); + + //Customer customer = sqlS.GetCustomer(3); diff --git a/TeamDBAwesome/TeamDBAwesome/Models/Payment.cs b/TeamDBAwesome/TeamDBAwesome/Models/Payment.cs index 128bd07..205dda5 100644 --- a/TeamDBAwesome/TeamDBAwesome/Models/Payment.cs +++ b/TeamDBAwesome/TeamDBAwesome/Models/Payment.cs @@ -15,5 +15,6 @@ namespace TeamDBAwesome.Models // needs to be in yyyy-mm-dd format public string expr_date { get; set; } public int is_default { get; set; } + public int PayId { get; set; } } } \ No newline at end of file diff --git a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs index 0c79337..e9db24f 100644 --- a/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs +++ b/TeamDBAwesome/TeamDBAwesome/SqlService/MySqlService.cs @@ -43,6 +43,10 @@ namespace TeamDBAwesome.SqlService return Reader[SqlFieldName].Equals(DBNull.Value) ? String.Empty : Reader.GetString(SqlFieldName); } + private DateTime GetSqlDate(string SqlFieldName, MySqlDataReader Reader) + { + return new DateTime(); + } /// /// opens a connection to the DB /// @@ -138,6 +142,11 @@ namespace TeamDBAwesome.SqlService } + /// + /// adds a payment type to the database + /// + /// an instance of the Payment Model + /// 0 on success, 1 on error public int AddPayment(Payment payment) { bool open = this.OpenConnection(); @@ -401,6 +410,76 @@ namespace TeamDBAwesome.SqlService } } + public List GetPayTypes(int customerId) + { + List payList = new List(); + bool open = this.OpenConnection(); + + if(open == true) + { + string query = "select payment.PayId as PayId,payment.CustomerId as CustomerID, applepay.ApplePayToken as AppleToken, " + + "googlepay.GoogleToken as GoogleToken, googlepay.GoogleEmail as GoogleEmail, creditcard.CreditCardNumber as CardNum, " + + "creditcard.ExpirationDate as ExprDate, payment.IsDefault as IsDefault " + + "from chinook.payment left join googlepay on payment.PayId = googlepay.PayId " + + "left join applepay on payment.PayId = applepay.PayId left join creditcard on creditcard.PayId = payment.PayId " + + "where CustomerId = " + customerId; + + MySqlCommand command = new MySqlCommand(query, SqlConn); + MySqlDataReader reader = command.ExecuteReader(); + + Payment newPayment; + + while (reader.Read()) + { + newPayment = new Payment(); + + //change token, type with logic + newPayment.CustomerId = int.Parse(GetDBString("CustomerID", reader)); + newPayment.PayId = int.Parse(GetDBString("PayId", reader)); + string is_default = GetDBString("IsDefault", reader); + string appleToken = GetDBString("AppleToken", reader); + string googleToken = GetDBString("GoogleToken", reader); + string googleEmail = GetDBString("GoogleEmail", reader); + string cardNum = GetDBString("CardNum", reader); + string exprDate = GetDBString("ExprDate", reader); + + if(is_default == "True") + { + newPayment.is_default = 1; + } + else + { + newPayment.is_default = 0; + } + + if (cardNum != "") + { + newPayment.Type = "CC"; + newPayment.cardnum = cardNum; + newPayment.expr_date = exprDate; + } + else if (googleToken != "") + { + newPayment.Type = "GP"; + newPayment.email = googleEmail; + newPayment.token = googleToken; + } + else if (appleToken != "") + { + newPayment.Type = "AP"; + newPayment.token = appleToken; + } + + payList.Add(newPayment); + } + + } + + + return payList; + } + + /// /// Gets a track from the DB /// diff --git a/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj b/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj index 5affec3..2376ab6 100644 --- a/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj +++ b/TeamDBAwesome/TeamDBAwesome/TeamDBAwesome.csproj @@ -165,6 +165,7 @@ + diff --git a/TeamDBAwesome/TeamDBAwesome/js/HolderService.js b/TeamDBAwesome/TeamDBAwesome/js/HolderService.js index 78e99c2..2f9a6f0 100644 --- a/TeamDBAwesome/TeamDBAwesome/js/HolderService.js +++ b/TeamDBAwesome/TeamDBAwesome/js/HolderService.js @@ -50,7 +50,8 @@ //YYYY-MM-DD expr_date: null, //is_default is 0 for false, 1 for true - is_default: null + is_default: null, + PayId: null } diff --git a/chinookmodel.mwb b/chinookmodel.mwb index 4e36f1e..2397d0f 100644 Binary files a/chinookmodel.mwb and b/chinookmodel.mwb differ diff --git a/chinookmodel.mwb.bak b/chinookmodel.mwb.bak index cf5f6a9..4e36f1e 100644 Binary files a/chinookmodel.mwb.bak and b/chinookmodel.mwb.bak differ