|
- //
- // OilSampleItem.swift
- //
- //
- // Created by Michiel Carman on 11/11/21.
- //
-
- import Foundation
- import Vapor
- import Fluent
- import FluentPostgresDriver
-
- final class OilSampleItemCtrl{
- //Create Unit
- func create(req: Request) throws -> EventLoopFuture<mdlOilSampleItem.Output>{
- let input = try req.content.decode(mdlOilSampleItem.Input.self)
- let output = self.createUnit(input)
- return self.save(output, req, input)
-
- }
-
- //Update Unit
- func update(req: Request) throws -> EventLoopFuture<mdlOilSampleItem.Output>{
- let input = try req.content.decode(mdlOilSampleItem.Input.self)
- return try qbase(req: req).first().unwrap(or: Abort(.notFound)).flatMap{output in self.mapOutput(output, input)
- return self.save(output, req: req)
- }
- }
-
- //Get all Divisions
- func readAll(req: Request) throws -> EventLoopFuture<Page<mdlOilSampleItem.Output>>{
- return try qbase(req: req)
- .paginate(for: req)
- .map{
- page in page.map{
- self.createRead($0)
- }
- }
- }
- //Get 1 Division
- func read(req: Request) throws -> EventLoopFuture<mdlOilSampleItem.Output>{
-
- return try qbase(req: req).first().unwrap(or: Abort(.internalServerError)).map{self.createRead($0)}
-
- }
- //Delete 1 Division
- func delete(req: Request) throws -> EventLoopFuture<HTTPStatus>{
-
- guard let id = req.parameters.get("id", as: Int.self) else{
- throw Abort(.badRequest)
- }
- return mdlOilSampleItem.find(id, on: req.db).unwrap(or: Abort(.notFound)).flatMap{ $0.delete(on: req.db)}.map{.ok}
- }
-
- }
- extension OilSampleItemCtrl{
- //Query Settings
- func qbase(req: Request) throws -> QueryBuilder<mdlOilSampleItem> {
- let query = mdlOilSampleItem.query(on: req.db).with(\.$oilsample)
- if let id = req.parameters.get("id", as: Int.self){
- return query.filter(\.$id == id)
- } else{
- return query
- }
- }
- /*
- let id: Int?
- let compartmentname: String
- let compartmentcode: String
- let compartmentlocationname1: String
- let compartmentlocationcode1: String
- let compartmentlocationname2: String
- let compartmentlocationcode2: String
- let hoursonoil: Decimal?
- let oiladded: Decimal?
- let jobsitename: String
- let fluidname: String
- let viscosityname: String
- let oilchanged: Bool?
- let filterchanged: Bool?
- let levelname: String
- let comment: String
- let createdate: Date?
- let createuserid: Int?
- let updatedate: Date?
- let updateuserid: Int?
- let oilsample: mdlOilSample
- */
- //create Output
- func createRead(_ output: mdlOilSampleItem) -> mdlOilSampleItem.Output {
- return mdlOilSampleItem.Output(
- id: output.id!,
- compartmentname: output.compartmentname,
- compartmentcode: output.compartmentcode,
- compartmentlocationname1: output.compartmentlocationname1,
- compartmentlocationcode1: output.compartmentlocationcode1,
- compartmentlocationname2: output.compartmentlocationname2,
- compartmentlocationcode2: output.compartmentlocationcode2,
- hoursonoil: output.hoursonoil,
- oiladded: output.oiladded,
- jobsitename: output.jobsitename,
- fluidname: output.fluidname,
- viscosityname: output.viscosityname,
- oilchanged: output.oilchanged,
- filterchanged: output.filterchanged,
- levelname: output.levelname,
- comment: output.comment,
- createdate: output.createdate,
- createuserid: output.createuserid,
- updatedate: output.updatedate,
- updateuserid: output.updateuserid,
- oilsample: output.$oilsample.value!
- )
- }
-
- func mapOutput(_ output: Optional<mdlOilSampleItem>.WrappedType, _ input: mdlOilSampleItem.Input){
- output.compartmentname = input.compartmentname;
- output.compartmentcode = input.compartmentcode;
- output.compartmentlocationname1 = input.compartmentlocationname1;
- output.compartmentlocationcode1 = input.compartmentlocationcode1;
- output.compartmentlocationname2 = input.compartmentlocationname2;
- output.compartmentlocationcode2 = input.compartmentlocationcode2;
- output.hoursonoil = input.hoursonoil;
- output.oiladded = input.oiladded;
- output.jobsitename = input.jobsitename;
- output.fluidname = input.fluidname;
- output.viscosityname = input.viscosityname;
- output.oilchanged = input.oilchanged;
- output.filterchanged = input.filterchanged;
- output.levelname = input.levelname;
- output.comment = input.comment;
- output.createdate = input.createdate;
- output.updatedate = input.updatedate;
- output.createuserid = input.createuserid;
- output.updateuserid = input.updateuserid;
- output.$oilsample.id = input.oilsample.id!
- }
-
- func createUnit(_ input: mdlOilSampleItem.Input) -> mdlOilSampleItem {
- return mdlOilSampleItem(
- id: input.id ?? nil
- , compartmentname: input.compartmentname
- , compartmentcode: input.compartmentcode
- , compartmentlocationname1: input.compartmentlocationname1
- , compartmentlocationcode1: input.compartmentlocationcode1
- , compartmentlocationname2: input.compartmentlocationname2
- , compartmentlocationcode2: input.compartmentlocationcode2
- , hoursonoil: input.hoursonoil
- , oiladded: input.oiladded
- , jobsitename: input.jobsitename
- , fluidname: input.fluidname
- , viscosityname: input.viscosityname
- , oilchanged: input.oilchanged
- , filterchanged: input.filterchanged
- , levelname: input.levelname
- , comment: input.comment
- , createuserid: input.createuserid ?? -1
- , createdate: input.createdate
- , updateuserid: input.updateuserid ?? -1
- , updatedate: input.updatedate
- , oilsample: input.oilsample
- )
- }
-
- //update function
- func save(_ output: Optional<mdlOilSampleItem>.WrappedType, req: Request) -> EventLoopFuture<mdlOilSampleItem.Output> {
- return output
- .save(on: req.db)
- .map{mdlOilSampleItem.Output(
- id: output.id!
- , compartmentname: output.compartmentname
- , compartmentcode: output.compartmentcode
- , compartmentlocationname1: output.compartmentlocationname1
- , compartmentlocationcode1: output.compartmentlocationcode1
- , compartmentlocationname2: output.compartmentlocationname2
- , compartmentlocationcode2: output.compartmentlocationcode2
- , hoursonoil: output.hoursonoil
- , oiladded: output.oiladded
- , jobsitename: output.jobsitename
- , fluidname: output.fluidname
- , viscosityname: output.viscosityname
- , oilchanged: output.oilchanged
- , filterchanged: output.filterchanged
- , levelname: output.levelname
- , comment: output.comment
- , createdate: output.createdate
- , createuserid: output.createuserid
- , updatedate: output.updatedate
- , updateuserid: output.updateuserid
- , oilsample: output.oilsample
- )
- }
- }
- //create function
- func save(_ output: mdlOilSampleItem, _ req: Request, _ input: mdlOilSampleItem.Input) -> EventLoopFuture<mdlOilSampleItem.Output> {
- return output
- .save(on: req.db)
- .map{
- mdlOilSampleItem.Output(
- id: output.id!
- , compartmentname: output.compartmentname
- , compartmentcode: output.compartmentcode
- , compartmentlocationname1: output.compartmentlocationname1
- , compartmentlocationcode1: output.compartmentlocationcode1
- , compartmentlocationname2: output.compartmentlocationname2
- , compartmentlocationcode2: output.compartmentlocationcode2
- , hoursonoil: output.hoursonoil
- , oiladded: output.oiladded
- , jobsitename: output.jobsitename
- , fluidname: output.fluidname
- , viscosityname: output.viscosityname
- , oilchanged: output.oilchanged
- , filterchanged: output.filterchanged
- , levelname: output.levelname
- , comment: output.comment
- , createdate: output.createdate
- , createuserid: output.createuserid
- , updatedate: output.updatedate
- , updateuserid: output.updateuserid
- , oilsample: input.oilsample
- )
-
- }
- }
-
- }
- extension OilSampleItemCtrl: RouteCollection{
- func boot(routes: RoutesBuilder) throws{
- let apigroup = routes.grouped("oilsampleitems")
- apigroup.get("", use: readAll)
- apigroup.get(":id", use: read)
- apigroup.post("", use: create)
- apigroup.post(":id", use: update)
- apigroup.delete(":id", use: delete)
-
-
- }
- }
|