Skip to content

Instantly share code, notes, and snippets.

import Foundation
import PerfectLib
import PerfectHTTP
import PerfectHTTPServer
func setupRouter() -> Routes {
var routes = Routes()
routes.add(method: .get, uri: "/flights") { request, response in
FlightsListController().handleFlightsListRequest(request: request, response: response)
import Foundation
import PerfectLib
import PerfectHTTP
import PerfectHTTPServer
class FlightsDetailController {
func handleFlightsDetailRequest(request: HTTPRequest, response: HTTPResponse) {
do {
guard let flightId: Int = Int(request.urlVariables["id"] ?? "") else {
import Foundation
import PerfectLib
import PerfectHTTP
import PerfectHTTPServer
class FlightsListController {
func handleFlightsListRequest(request: HTTPRequest, response: HTTPResponse) {
do {
try response.setBody(json: getFlightsList())
@pallavtrivedi03
pallavtrivedi03 / FlightsData.swift
Created July 1, 2021 12:44
Dummy data for flights listing
import Foundation
func getFlightsList() -> [[String: Any]] {
return [
["id":1001,
"flightNumber": "AI323",
"company": "Air India",
"fare": 27637,
"stops": 0,
"departure":"06:30",
@pallavtrivedi03
pallavtrivedi03 / main.swift
Created July 1, 2021 12:39
Creating Server in Swift (using Perfect)
import PerfectLib
import PerfectHTTP
import PerfectHTTPServer
let server = HTTPServer()
server.serverPort = 3000
do {
try server.start()
} catch {
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
setupCollectionView()
}
func setupCollectionView() {
let searchCollectionView = UICollectionView(frame: .zero, collectionViewLayout: getCompositionalLayout())
@main
struct BoxOfficeWidget: Widget {
let kind: String = "BoxOfficeWidget"
var body: some WidgetConfiguration {
StaticConfiguration(kind: kind, provider: Provider()) { entry in
BoxOfficeWidgetEntryView(entry: entry)
}
.configurationDisplayName("Box Office")
.description("Box office collection of latest movies")
struct BoxOfficeWidgetEntryView : View {
var entry: Provider.Entry
@Environment(\.widgetFamily) var family
@ViewBuilder
var body: some View {
switch family {
case .systemSmall:
ZStack {
moviePosterView()
struct Provider: TimelineProvider {
let dummyData = MovieInfo(name: "Some latest movie", releaseDate: "Release Date", daysSinceRelease: 1, collection: "Collection in Cr", posterUrl: "https://popcornusa.s3.amazonaws.com/placeholder-movieimage.png")
func placeholder(in context: Context) -> MovieInfoEntry {
MovieInfoEntry(date: Date(), movieInfo: dummyData)
}
func getSnapshot(in context: Context, completion: @escaping (MovieInfoEntry) -> ()) {
let entry = MovieInfoEntry(date: Date(), movieInfo: dummyData)
struct MovieInfoEntry: TimelineEntry {
public let date: Date
public let movieInfo: MovieInfo
}