Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Hands-On Full-Stack Development with Swift

You're reading from   Hands-On Full-Stack Development with Swift Develop full-stack web and native mobile applications using Swift and Vapor

Arrow left icon
Product type Paperback
Published in Mar 2018
Publisher Packt
ISBN-13 9781788625241
Length 356 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Ankur Patel Ankur Patel
Author Profile Icon Ankur Patel
Ankur Patel
Arrow right icon
View More author details
Toc

Table of Contents (13) Chapters Close

Preface 1. Getting Started with Server Swift 2. Creating the Native App FREE CHAPTER 3. Getting Started with Vapor 4. Configuring Providers, Fluent, and Databases 5. Building a REST API using Vapor 6. Consuming API in App 7. Creating Web Views and Middleware 8. Testing and CI 9. Deploying the App 10. Adding Authentication 11. Building a tvOS App 12. Other Books You May Enjoy

User has many Shopping Lists


A User has many Shopping Lists, to create a has-many relation between User and Shopping List model, we will need to do a similar exercise like we did for Shopping List and Item model. Each ShoppingList object would need to keep an ID to the user it belongs to so that we can query for all Shopping Lists for that user. To add this, we will need to follow these steps:

  1. Open the ShoppingList.swift file in your Vapor app and add the following new property as an instance variable inside the ShoppingList class to store userId:
var userId: Identifier
  1. Next, create a user-computed property, which will allow us to get the user to a Shopping List:
var user: Parent<ShoppingList, User> {
  return parent(id: userId)
}
  1. Now, add the userId column name that will be used by MongoDB to store the user ID inside of the database collection:
static let userId = "user__id"
  1. Now, we will need to update our initializer so that it can take the userId as a parameter and assign it to its userId...
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €18.99/month. Cancel anytime