Last active
March 16, 2018 16:47
-
-
Save jhoughjr/0eb2588c279e561e0ed9c283934e8d69 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Migrating mysql DB | |
Migrations complete | |
Server starting on http://localhost:8080 | |
[ ERROR ] RoutingError.insufficientParameters: Insufficient parameters (ParameterContainer.swift:61) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
POST /api/teams/422E63EA-0750-4C3F-81D1-A4CF047D6E11 | |
Accept: */* | |
Accept-Encoding: gzip, deflate | |
Content-Type: application/json | |
Accept-Language: en-us | |
{ | |
"userID": "1AC397D3-44D6-4BF0-BF10-8800D1F40436" | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// TeamsController.swift | |
// App | |
// | |
// Created by Jimmy Hough Jr on 3/15/18. | |
// | |
import Foundation | |
import Vapor | |
struct TeamsController: RouteCollection { | |
func boot(router:Router) throws { | |
let teamRoutes = router.grouped("api", "teams") | |
teamRoutes.post(use: createHandler) | |
teamRoutes.get(use: getAllHandler) | |
teamRoutes.get(GNTeam.parameter, | |
use:getHandler) | |
teamRoutes.get(GNTeam.parameter, "members", | |
use:getMembersHandler) | |
teamRoutes.post(GNUser.self, | |
at: GNTeam.parameter, | |
use: postMembersHandler) | |
teamRoutes.get(GNTeam.parameter, "owner", | |
use:getOwnerHandler) | |
} | |
func createHandler(_ req:Request) throws -> Future<GNTeam> { | |
return try req.content.decode(GNTeam.self).flatMap(to: GNTeam.self, { (team) -> Future<GNTeam> in | |
return team.save(on:req) | |
}) | |
} | |
func getAllHandler(_ req:Request) throws -> Future<[GNTeam]> { | |
return GNTeam.query(on: req).all() | |
} | |
func getHandler(_ req:Request) throws -> Future<GNTeam> { | |
return try req.parameter(GNTeam.self) | |
} | |
// relations | |
func getMembersHandler(_ req:Request) throws -> Future<[GNUser]> { | |
return try req.parameter(GNTeam.self).flatMap(to: [GNUser].self, { (team) -> Future<[GNUser]> in | |
return try team.members.query(on:req).all() | |
}) | |
} | |
func postMembersHandler(_ req:Request, _ user: GNUser) throws -> Future<HTTPStatus> { | |
return try req.parameter(GNTeam.self).flatMap(to: HTTPStatus.self) { team in | |
return try req.parameter(GNUser.self).flatMap(to: HTTPStatus.self) { user in | |
let pivot = TeamMembersPivot(try team.requireID(), try user.requireID()) | |
return pivot.save(on: req).transform(to: .ok) | |
} | |
} | |
} | |
func getOwnerHandler(_ req:Request) throws -> Future<GNUser> { | |
return try req.parameter(GNTeam.self).flatMap(to: GNUser.self, { (team) -> Future<GNUser> in | |
return team.owner.get(on: req) | |
}) | |
} | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
github |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment