Sfoglia il codice sorgente

Most recent changes

main
rpm-mcarman 2 anni fa
parent
commit
35273ba917
28 ha cambiato i file con 1672 aggiunte e 23 eliminazioni
  1. +1
    -1
      Package.swift
  2. +21
    -0
      Sources/App/Controllers/GlobalFunctions/EncryptionController.swift
  3. +13
    -0
      Sources/App/Models/AuthTables/mdlUser.swift
  4. +2
    -0
      Sources/App/Models/BaseTables/mdlCategory.swift
  5. +2
    -0
      Sources/App/Models/BaseTables/mdlComparisonType.swift
  6. +3
    -0
      Sources/App/Models/BaseTables/mdlContactType.swift
  7. +2
    -0
      Sources/App/Models/BaseTables/mdlDataType.swift
  8. +2
    -1
      Sources/App/Models/BaseTables/mdlDivision.swift
  9. +3
    -0
      Sources/App/Models/BaseTables/mdlEquipmentType.swift
  10. +2
    -0
      Sources/App/Models/BaseTables/mdlFuel.swift
  11. +2
    -0
      Sources/App/Models/BaseTables/mdlGate.swift
  12. +2
    -0
      Sources/App/Models/BaseTables/mdlIncompleteReason.swift
  13. +2
    -0
      Sources/App/Models/BaseTables/mdlInputType.swift
  14. +6
    -6
      Sources/App/Models/BaseTables/mdlSysCategory.swift
  15. +87
    -3
      Sources/App/Models/BaseTables/mdlSysOfMeasure.swift
  16. +132
    -3
      Sources/App/Models/BaseTables/mdlSysUOM.swift
  17. +2
    -1
      Sources/App/Models/CompartmentModule/mdlCompartment.swift
  18. +3
    -1
      Sources/App/Models/CompartmentModule/mdlCompartmentLocation.swift
  19. +2
    -0
      Sources/App/Models/ItemTables/mdlItem.swift
  20. +3
    -0
      Sources/App/Models/ItemTables/mdlItemResponseType.swift
  21. +2
    -0
      Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItem.swift
  22. +3
    -0
      Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemResponse.swift
  23. +2
    -0
      Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionLevel.swift
  24. +2
    -0
      Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionType.swift
  25. +1138
    -3
      Sources/App/Models/mdlLocale.swift
  26. +213
    -3
      Sources/App/Models/mdlTblValue.swift
  27. +19
    -0
      Sources/App/configure.swift
  28. +1
    -1
      Sources/App/routes.swift

+ 1
- 1
Package.swift Vedi File

@@ -1,4 +1,4 @@
// swift-tools-version:5.9
// swift-tools-version:5.10
import PackageDescription

let package = Package(


+ 21
- 0
Sources/App/Controllers/GlobalFunctions/EncryptionController.swift Vedi File

@@ -48,5 +48,26 @@ struct CustomCrypto{
}
}
}
struct Base64{
public static func Base64Encode(input: String) throws -> String{
guard let dataToEncode = input.data(using: .utf8) else{ fatalError("Invalid Data")}
let base64EncodedString = dataToEncode.base64EncodedString()
let urlEncodedString = base64EncodedString.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
return urlEncodedString!
}
public static func Base64Decode(input: String) throws -> [String: String]{
var dic: [String: String] = [:]
guard let base64EncodedData = input.data(using: .utf8) else { fatalError("Invalid Data")}
if let data = Data(base64Encoded: base64EncodedData){
let str = String(data: data, encoding: .utf8)
let strArr = str!.components(separatedBy: ";")
for s in strArr{
let pcs = s.components(separatedBy: "=")
dic[pcs[0]] = pcs[1]
}
}
return dic
}
}



+ 13
- 0
Sources/App/Models/AuthTables/mdlUser.swift Vedi File

@@ -93,6 +93,19 @@ extension mdlUser{
try await database.schema("user").delete()
}
}
struct Customer: AsyncMigration {
func prepare(on database: Database) async throws {
try await database.schema("user")
.field("customerId", .int, .references("customer", "id"))
.update()
}

func revert(on database: Database) async throws {
try await database.schema("user")
.deleteField("customerId")
.update()
}
}
struct ReSeed: AsyncMigration{
func prepare(on database: Database) async throws {
if let db = database as? SQLDatabase{


+ 2
- 0
Sources/App/Models/BaseTables/mdlCategory.swift Vedi File

@@ -21,6 +21,7 @@ final class mdlCategory: Model, Content {
@Children(for: \.$category) var categories: [mdlInspectionCategory]
@Children(for: \.$category) var templatecategories: [mdlTemplateCategory]
@Children(for: \.$category) var values: [mdlTblValue]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@@ -63,6 +64,7 @@ extension mdlCategory{
let query = mdlCategory.query(on: req.db)
.with(\.$categories)
.with(\.$templatecategories)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 2
- 0
Sources/App/Models/BaseTables/mdlComparisonType.swift Vedi File

@@ -22,6 +22,7 @@ final class mdlComparisonType: Model, Content {
@Field(key: "createUserId") var createuserid: Int?
@Timestamp(key: "updateDate", on: .update) var updatedate: Date?
@Field(key: "updateUserId") var updateuserid: Int?
@Children(for: \.$comparisontype) var values: [mdlTblValue]
init() { }
@@ -78,6 +79,7 @@ extension mdlComparisonType{
public static func ObjQuery(req: Request) async throws -> QueryBuilder<mdlComparisonType>{
let query = mdlComparisonType.query(on: req.db)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 3
- 0
Sources/App/Models/BaseTables/mdlContactType.swift Vedi File

@@ -20,6 +20,7 @@ final class mdlContactType: Model, Content {
@Field(key: "isActive") var isactive: Bool?
@Children(for: \.$contacttype) var info: [mdlContactInfo]
@Children(for: \.$contacttype) var values: [mdlTblValue]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@@ -80,6 +81,8 @@ extension mdlContactType{
public static func ObjQuery(req: Request) async throws -> QueryBuilder<mdlContactType>{
let query = mdlContactType.query(on: req.db)
.with(\.$info)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 2
- 0
Sources/App/Models/BaseTables/mdlDataType.swift Vedi File

@@ -19,6 +19,7 @@ final class mdlDataType: Model, Content {
@Field(key: "description") var description: String?
@Children(for: \.$datatype) var units: [mdlUnit]
@Children(for: \.$datatype) var values: [mdlTblValue]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@@ -80,6 +81,7 @@ extension mdlDataType{
let query = mdlDataType.query(on: req.db)
.with(\.$units)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 2
- 1
Sources/App/Models/BaseTables/mdlDivision.swift Vedi File

@@ -20,7 +20,7 @@ final class mdlDivision: Model, Content {
@Field(key: "isActive") var isactive: Bool?
@Children(for: \.$division) var users: [mdlUser]
@Children(for: \.$division) var values: [mdlTblValue]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@@ -64,6 +64,7 @@ extension mdlDivision{
let query = mdlDivision.query(on: req.db)
.with(\.$users)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 3
- 0
Sources/App/Models/BaseTables/mdlEquipmentType.swift Vedi File

@@ -19,6 +19,8 @@ final class mdlEquipmentType: Model, Content {
@Field(key: "description") var description: String?
@Field(key: "isActive") var isactive: Bool?
@Children(for: \.$equipmenttype) var values: [mdlTblValue]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@Timestamp(key: "updateDate", on: .update) var updatedate: Date?
@@ -74,6 +76,7 @@ extension mdlEquipmentType{
public static func ObjQuery(req: Request) async throws -> QueryBuilder<mdlEquipmentType>{
let query = mdlEquipmentType.query(on: req.db)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 2
- 0
Sources/App/Models/BaseTables/mdlFuel.swift Vedi File

@@ -21,6 +21,7 @@ final class mdlFuel: Model, Content {
@Field(key: "isActive") var isactive: Bool?
@Children(for: \.$fuel) var workorders: [mdlWorkOrder]
@Children(for: \.$fuel) var values: [mdlTblValue]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@@ -66,6 +67,7 @@ extension mdlFuel{
let query = mdlFuel.query(on: req.db)
.with(\.$workorders)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 2
- 0
Sources/App/Models/BaseTables/mdlGate.swift Vedi File

@@ -23,6 +23,7 @@
@Parent(key: "locationId") var location: mdlLocation
@Children(for: \.$gate) var users: [mdlUser]
@Children(for: \.$gate) var values: [mdlTblValue]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@@ -83,6 +84,7 @@
let query = mdlGate.query(on: req.db)
.with(\.$users)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 2
- 0
Sources/App/Models/BaseTables/mdlIncompleteReason.swift Vedi File

@@ -20,6 +20,7 @@ final class mdlIncompleteReason: Model, Content {
@Field(key: "isActive") var isactive: Bool?
@Children(for: \.$incompletereason) var workorders: [mdlWorkOrder]
@Children(for: \.$incompletereason) var values: [mdlTblValue]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@@ -63,6 +64,7 @@ extension mdlIncompleteReason{
let query = mdlIncompleteReason.query(on: req.db)
.with(\.$workorders)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 2
- 0
Sources/App/Models/BaseTables/mdlInputType.swift Vedi File

@@ -19,6 +19,7 @@ final class mdlInputType: Model, Content {
@Field(key: "description") var description: String?
@Children(for: \.$inputtype) var inspectionitems: [mdlInspectionItem]
@Children(for: \.$inputtype) var values: [mdlTblValue]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@@ -79,6 +80,7 @@ extension mdlInputType{
let query = mdlInputType.query(on: req.db)
.with(\.$inspectionitems)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 6
- 6
Sources/App/Models/BaseTables/mdlSysCategory.swift Vedi File

@@ -18,7 +18,7 @@ final class mdlSysCategory: Model, Content {
@Field(key: "name") var name: String?
@Field(key: "description") var description: String?
@Children(for: \.$syscat) var uoms: [mdlSysUOM]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@Timestamp(key: "updateDate", on: .update) var updatedate: Date?
@@ -65,27 +65,27 @@ extension mdlSysCategory{
description: "Unit of distance.",
createuserid: -1,
updateuserid: -1),
.init(id: 1,
.init(id: 2,
name: "WEIGHT",
description: "Unit of force.",
createuserid: -1,
updateuserid: -1),
.init(id: 1,
.init(id: 3,
name: "CAPACITY",
description: "Unit of capacity.",
createuserid: -1,
updateuserid: -1),
.init(id: 1,
.init(id: 4,
name: "VOLUME",
description: "Unit of volume.",
createuserid: -1,
updateuserid: -1),
.init(id: 1,
.init(id: 5,
name: "AREA",
description: "Unit of area.",
createuserid: -1,
updateuserid: -1),
.init(id: 1,
.init(id: 6,
name: "TEMPERATURE",
description: "Unit of temperature.",
createuserid: -1,


+ 87
- 3
Sources/App/Models/BaseTables/mdlSysOfMeasure.swift Vedi File

@@ -1,8 +1,92 @@
//
// File.swift
//
// mdlSysOfMeasure.swift
//
// Created by Michiel Carman on 5/6/24.
//
// Created by Michiel Carman on 2/16/24.
//


import Fluent
import Vapor
import Foundation
import FluentKit

final class mdlSysOfMeasure: Model, Content {
static let schema = "sysOfMeasure"
@ID(custom: "id", generatedBy: .database) var id: Int?
@Field(key: "name") var name: String?
@Field(key: "description") var description: String?
@Children(for: \.$sys) var uoms: [mdlSysUOM]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@Timestamp(key: "updateDate", on: .update) var updatedate: Date?
@Field(key: "updateUserId") var updateuserid: Int?
init() { }
init(id: Int? = nil,
name: String? = nil,
description: String? = nil,
createuserid: Int? = nil,
updateuserid: Int? = nil
) {
self.id = id
self.name = name
self.description = description
self.createuserid = createuserid
self.updateuserid = updateuserid
}
}
extension mdlSysOfMeasure{
struct Create: AsyncMigration {
func prepare(on database: Database) async throws {
try await database.schema("sysOfMeasure")
.field("id", .int, .identifier(auto: true))
.field("name", .string)
.field("description", .string)
.field("createDate", .datetime)
.field("createUserId", .int)
.field("updateDate", .datetime)
.field("updateUserId", .int)
.create()
}
func revert(on database: Database) async throws {
try await database.schema("sysOfMeasure").delete()
}
}
struct Seed: AsyncMigration{
func prepare(on database: FluentKit.Database) async throws {
let mdls: [mdlSysOfMeasure] = [
.init(id: 1,
name: "METRIC",
description: "International System of Units",
createuserid: -1,
updateuserid: -1),
.init(id: 2,
name: "IMPERIAL",
description: "British Imperial System",
createuserid: -1,
updateuserid: -1),
.init(id: 3,
name: "US",
description: "US Customary System",
createuserid: -1,
updateuserid: -1)
]
for mdl in mdls{
try await mdl.save(on: database)
}
}
func revert(on database: Database) async throws {
try await mdlSysOfMeasure.query(on: database).delete()
}
}
}


+ 132
- 3
Sources/App/Models/BaseTables/mdlSysUOM.swift Vedi File

@@ -1,8 +1,137 @@
//
// File.swift
//
// mdlSysUOM.swift
//
// Created by Michiel Carman on 5/6/24.
//
// Created by Michiel Carman on 2/16/24.
//


import Fluent
import Vapor
import Foundation
import FluentKit

final class mdlSysUOM: Model, Content {
static let schema = "sysUOM"
@ID(custom: "id", generatedBy: .database) var id: Int?
@Field(key: "name") var name: String?
@Field(key: "description") var description: String?
@Parent(key: "sysOfMeasureId") var sys: mdlSysOfMeasure
@Parent(key: "sysCategoryId") var syscat: mdlSysCategory
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@Timestamp(key: "updateDate", on: .update) var updatedate: Date?
@Field(key: "updateUserId") var updateuserid: Int?
init() { }
init(id: Int? = nil,
name: String? = nil,
description: String? = nil,
sysid: Int,
syscatid: Int,
createuserid: Int? = nil,
updateuserid: Int? = nil
) {
self.id = id
self.name = name
self.description = description
self.$sys.$id.value = sysid
self.$syscat.$id.value = syscatid
self.createuserid = createuserid
self.updateuserid = updateuserid
}
}
extension mdlSysUOM{
struct Create: AsyncMigration {
func prepare(on database: Database) async throws {
try await database.schema("sysUOM")
.field("id", .int, .identifier(auto: true))
.field("name", .string)
.field("description", .string)
.field("sysOfMeasureId", .int, .references("sysOfMeasure", "id"))
.field("sysCategoryId", .int, .references("sysCategory", "id"))
.field("createDate", .datetime)
.field("createUserId", .int)
.field("updateDate", .datetime)
.field("updateUserId", .int)
.create()
}
func revert(on database: Database) async throws {
try await database.schema("sysUOM").delete()
}
}
struct Seed: AsyncMigration{
func prepare(on database: FluentKit.Database) async throws {
let sys = try await mdlSysOfMeasure.query(on: database).all()
let u = try await mdlSysCategory.query(on: database).all()
var mdls: [mdlSysUOM] = []
for s in sys{
_ = s.id!
for c in u{
_ = c.id!
if(c.name == "LENGTH"){
if(s.id == 1){
mdls.append(
.init(id: nil, name: "M", description: "Meter", sysid: s.id!, syscatid: c.id!, createuserid: -1, updateuserid: -1
)
)
mdls.append(
.init(id: nil, name: "cm", description: "centiMeter", sysid: s.id!, syscatid: c.id!, createuserid: -1, updateuserid: -1
)
)
mdls.append(
.init(id: nil, name: "mm", description: "Milimeter", sysid: s.id!, syscatid: c.id!, createuserid: -1, updateuserid: -1
)
)
mdls.append(
.init(id: nil, name: "nm", description: "Nanometer", sysid: s.id!, syscatid: c.id!, createuserid: -1, updateuserid: -1
)
)
mdls.append(
.init(id: nil, name: "KM", description: "Kilometer", sysid: s.id!, syscatid: c.id!, createuserid: -1, updateuserid: -1
)
)
}
}
if(c.name == "WEIGHT"){
}
if(c.name == "CAPACITY"){
}
if(c.name == "VOLUME"){
}
if(c.name == "AREA"){
}
if(c.name == "TEMPERATURE"){
}
}
}
// let mdls: [mdlSysUOM] = [
// .init(id: 1,
// name: "Built motor",
// description: "d",
// createuserid: -1,
// updateuserid: -1)
// ]
for mdl in mdls{
try await mdl.save(on: database)
}
}
func revert(on database: Database) async throws {
try await mdlSysUOM.query(on: database).delete()
}
}
}


+ 2
- 1
Sources/App/Models/CompartmentModule/mdlCompartment.swift Vedi File

@@ -20,6 +20,7 @@ final class mdlCompartment: Model, Content {
@Field(key: "code") var code: String?
@Field(key: "sortOrder") var sortorder: Int?
@Field(key: "isActive") var isactive: Bool?
@Children(for: \.$compartment) var values: [mdlTblValue]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@@ -65,7 +66,7 @@ extension mdlCompartment{
public static func ObjQuery(req: Request) async throws -> QueryBuilder<mdlCompartment>{
let query = mdlCompartment.query(on: req.db)
// .with(\.$<#parent/children#>)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 3
- 1
Sources/App/Models/CompartmentModule/mdlCompartmentLocation.swift Vedi File

@@ -25,6 +25,8 @@ final class mdlCompartmentLocation: Model, Content {
@Timestamp(key: "updateDate", on: .update) var updatedate: Date?
@Field(key: "updateUserId") var updateuserid: Int?
@Children(for: \.$compartmentlocation) var values: [mdlTblValue]
init() { }
init(id: Int? = nil, name: String? = nil, description: String? = nil, code: String? = nil, sortorder: Int?, isactive: Bool?, createuserid: Int? = nil, updateuserid: Int? = nil) {
@@ -64,7 +66,7 @@ extension mdlCompartmentLocation{
public static func ObjQuery(req: Request) async throws -> QueryBuilder<mdlCompartmentLocation>{
let query = mdlCompartmentLocation.query(on: req.db)
// .with(\.$<#parent/children#>)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 2
- 0
Sources/App/Models/ItemTables/mdlItem.swift Vedi File

@@ -24,6 +24,7 @@ final class mdlItem: Model, Content {
@Parent(key: "inputTypeId") var inputtype: mdlInputType
@Children(for: \.$item) var templateitems: [mdlTemplateItemSpec]
@Children(for: \.$item) var values: [mdlTblValue]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@@ -87,6 +88,7 @@ extension mdlItem{
let query = mdlItem.query(on: req.db)
.with(\.$templateitems)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 3
- 0
Sources/App/Models/ItemTables/mdlItemResponseType.swift Vedi File

@@ -20,6 +20,8 @@ final class mdlItemResponseType: Model, Content {
@Field(key: "sortOrder") var sortrder: Int?
@Field(key: "isActive") var isactive: Bool?
@Children(for: \.$itemresponsetype) var values: [mdlTblValue]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@Timestamp(key: "updateDate", on: .update) var updatedate: Date?
@@ -77,6 +79,7 @@ extension mdlItemResponseType{
let query = mdlItemResponseType.query(on: req.db)
.with(\.$item)
.with(\.$responsetype)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 2
- 0
Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItem.swift Vedi File

@@ -28,6 +28,7 @@ final class mdlInspectionItem: Model, Content {
@Children(for: \.$inspectionitem) var responses: [mdlInspectionItemResponse]
@Children(for: \.$inspectionitem) var specs: [mdlInspectionItemSpec]
@Children(for: \.$item) var notes: [mdlNote]
@Children(for: \.$inspectionitem) var values: [mdlTblValue]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@@ -120,6 +121,7 @@ extension mdlInspectionItem{
.with(\.$responses)
.with(\.$specs)
.with(\.$notes)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 3
- 0
Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemResponse.swift Vedi File

@@ -28,6 +28,8 @@ final class mdlInspectionItemResponse: Model, Content {
@Timestamp(key: "updateDate", on: .update) var updatedate: Date?
@Field(key: "updateUserId") var updateuserid: Int?
@Children(for: \.$inspectionitemresponse) var values: [mdlTblValue]
init() { }
init(id: Int? = nil,
@@ -75,6 +77,7 @@ extension mdlInspectionItemResponse{
let query = mdlInspectionItemResponse.query(on: req.db)
.with(\.$inspectionitem)
.with(\.$responsetype)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 2
- 0
Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionLevel.swift Vedi File

@@ -22,6 +22,7 @@ final class mdlInspectionLevel: Model, Content {
@Parent(key: "inspectionTypeId") var inspectiontype: mdlInspectionType
@Children(for: \.$level) var inspections: [mdlInspection]
@Children(for: \.$level) var templates: [mdlTemplate]
@Children(for: \.$inspectionlevel) var values: [mdlTblValue]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@@ -73,6 +74,7 @@ extension mdlInspectionLevel{
.with(\.$inspectiontype)
.with(\.$inspections)
.with(\.$templates)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 2
- 0
Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionType.swift Vedi File

@@ -21,6 +21,7 @@ final class mdlInspectionType: Model, Content {
@Field(key: "isActive") var isactive: Bool?
@Children(for: \.$inspectiontype) var inspectionlevels: [mdlInspectionLevel]
@Children(for: \.$inspectiontype) var values: [mdlTblValue]
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@@ -69,6 +70,7 @@ extension mdlInspectionType{
let query = mdlInspectionType.query(on: req.db)
.with(\.$inspectionlevels)
.with(\.$values)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)


+ 1138
- 3
Sources/App/Models/mdlLocale.swift
File diff soppresso perché troppo grande
Vedi File


+ 213
- 3
Sources/App/Models/mdlTblValue.swift Vedi File

@@ -1,8 +1,218 @@
//
// File.swift
//
// mdlTblValue.swift
//
// Created by Michiel Carman on 5/14/24.
//
// Created by Michiel Carman on 2/16/24.
//


import Fluent
import Vapor
import Foundation
import FluentKit

final class mdlTblValue: Model, Content {
static let schema = "tblValue"
@ID(custom: "id", generatedBy: .database) var id: Int?
@Field(key: "field") var field: String?
@Field(key: "value") var value: String?
@Timestamp(key: "createDate", on: .create) var createdate: Date?
@Field(key: "createUserId") var createuserid: Int?
@Timestamp(key: "updateDate", on: .update) var updatedate: Date?
@Field(key: "updateUserId") var updateuserid: Int?
@Parent(key: "localeId") var locale: mdlLocale
@OptionalParent(key: "categoryId") var category: mdlCategory?
@OptionalParent(key: "comparisonTypeId") var comparisontype: mdlComparisonType?
@OptionalParent(key: "compartmentId") var compartment: mdlCompartment?
@OptionalParent(key: "compartmentLocationId") var compartmentlocation: mdlCompartmentLocation?
@OptionalParent(key: "contactTypeId") var contacttype: mdlContactType?
@OptionalParent(key: "dataTypeId") var datatype: mdlDataType?
@OptionalParent(key: "divisiontId") var division: mdlDivision?
@OptionalParent(key: "equipmentTypeId") var equipmenttype: mdlEquipmentType?
@OptionalParent(key: "fluidId") var fluid: mdlFluid?
@OptionalParent(key: "fuelId") var fuel: mdlFuel?
@OptionalParent(key: "gateId") var gate: mdlGate?
@OptionalParent(key: "incompleteReasonId") var incompletereason: mdlIncompleteReason?
@OptionalParent(key: "inputTypeId") var inputtype: mdlInputType?
@OptionalParent(key: "inspectionItemId") var inspectionitem: mdlInspectionItem?
@OptionalParent(key: "inspectionItemResponseId") var inspectionitemresponse: mdlInspectionItemResponse?
@OptionalParent(key: "inspectionLevelId") var inspectionlevel: mdlInspectionLevel?
@OptionalParent(key: "inspectionTypeId") var inspectiontype: mdlInspectionType?
@OptionalParent(key: "itemId") var item: mdlItem?
@OptionalParent(key: "itemResponseTypeId") var itemresponsetype: mdlItemResponseType?
init() { }
init(id: Int? = nil,
field: String? = nil,
value: String? = nil,
localid: Int,
categoryid: Int? = nil,
comparisontypeid: Int? = nil,
compartmentid: Int? = nil,
compartmentlocationid: Int? = nil,
contacttypeid: Int? = nil,
datatypeid: Int? = nil,
divisionid: Int? = nil,
equipmenttypeid: Int? = nil,
fluidid: Int? = nil,
gateid: Int? = nil,
fuelid: Int? = nil,
incompletereasonid: Int? = nil,
inputtypeid: Int? = nil,
inspectionitemid: Int? = nil,
inspectionitemresponseid: Int? = nil,
inspectionlevelid: Int? = nil,
inspectiontypeid: Int? = nil,
itemid: Int? = nil,
itemresponsetypeid: Int? = nil,
createuserid: Int? = nil,
updateuserid: Int? = nil
) {
self.id = id
self.field = field
self.value = value
self.$locale.$id.value = localid
self.$category.$id.value = categoryid!
self.$comparisontype.$id.value = comparisontypeid!
self.$compartment.$id.value = compartmentid!
self.$compartmentlocation.$id.value = compartmentlocationid!
self.$contacttype.$id.value = contacttypeid!
self.$datatype.$id.value = datatypeid!
self.$division.$id.value = divisionid!
self.$equipmenttype.$id.value = equipmenttypeid!
self.$fluid.$id.value = fluidid!
self.$fuel.$id.value = fuelid!
self.$gate.$id.value = gateid!
self.$incompletereason.$id.value = incompletereasonid!
self.$inputtype.$id.value = inputtypeid!
self.$inspectionitem.$id.value = inspectionitemid!
self.$inspectionitemresponse.$id.value = inspectionitemresponseid!
self.$inspectionlevel.$id.value = inspectionlevelid!
self.$inspectiontype.$id.value = inspectiontypeid!
self.$item.$id.value = itemid!
self.$itemresponsetype.$id.value = itemresponsetypeid!
self.createuserid = createuserid
self.updateuserid = updateuserid
}
}
extension mdlTblValue{
struct Create: AsyncMigration {
func prepare(on database: Database) async throws {
try await database.schema("tblValue")
.field("id", .int, .identifier(auto: true))
.field("field", .string)
.field("value", .string)
.field("localeId", .int, .references("locale", "id"))
.field("categoryId", .int, .references("category", "id"))
.field("comparisonTypeId", .int, .references("comparisonType", "id"))
.field("createDate", .datetime)
.field("createUserId", .int)
.field("updateDate", .datetime)
.field("updateUserId", .int)
.create()
}
func revert(on database: Database) async throws {
try await database.schema("tblValue").delete()
}
}
struct AddOptionalParents: AsyncMigration {
func prepare(on database: Database) async throws {
try await database.schema("tblValue")
.field("compartmentId", .int, .references("compartment", "id"))
.field("compartmentLocationId", .int, .references("compartmentLocation", "id"))
.field("contactTypeId", .int, .references("contactType", "id"))
.field("dataTypeId", .int, .references("dataType", "id"))
.field("divisionId", .int, .references("division", "id"))
.field("equipmentTypeId", .int, .references("equipmentType", "id"))
.field("fluidId", .int, .references("fluid", "id"))
.field("fuelId", .int, .references("fuel", "id"))
.field("gateId", .int, .references("gate", "id"))
.field("incompleteReasonId", .int, .references("incompleteReason", "id"))
.field("inputTypeId", .int, .references("inputType", "id"))
.field("inspectionItemId", .int, .references("inspectionItemId", "id"))
.field("inspectionItemResponseId", .int, .references("inspectionItemResposne", "id"))
.field("inspectionLevelId", .int, .references("inspectionLevel", "id"))
.field("inspectionTypeId", .int, .references("inspectionType", "id"))
.field("itemId", .int, .references("item", "id"))
.field("itemResponseTypeId", .int, .references("itemResponseType", "id"))
.update()
}
func revert(on database: Database) async throws {
try await database.schema("tblValue")
.deleteField("compartmentId")
.deleteField("compartmentLocationId")
.deleteField("contactTypeId")
.deleteField("dataTypeId")
.deleteField("divisionId")
.deleteField("equipmentTypeId")
.deleteField("fluidId")
.deleteField("fuelId")
.deleteField("gateId")
.deleteField("incompleteReasonId")
.deleteField("inputTypeId")
.deleteField("inspectionItemId")
.deleteField("inspectionItemResponseId")
.deleteField("inspectionLevelId")
.deleteField("inspectionTypeId")
.deleteField("itemResponseTypeId")
.update()
}
}
public static func ObjQuery(req: Request) async throws -> QueryBuilder<mdlTblValue>{
let query = mdlTblValue.query(on: req.db)
.with(\.$locale)
.with(\.$category)
.with(\.$comparisontype)
.with(\.$compartment)
.with(\.$compartmentlocation)
.with(\.$contacttype)
.with(\.$datatype)
.with(\.$division)
.with(\.$equipmenttype)
.with(\.$fluid)
.with(\.$fuel)
.with(\.$gate)
.with(\.$incompletereason)
.with(\.$inputtype)
.with(\.$inspectionitem)
.with(\.$inspectionitemresponse)
.with(\.$inspectionlevel)
.with(\.$inspectiontype)
.with(\.$item)
.with(\.$itemresponsetype)
if let x = req.parameters.get("x"){
let decryptedString = try CustomCrypto.DecryptString(input: x)
let array = decryptedString.components(separatedBy: ":")
///This call is the standard get by id call
if (array.count == 1){
let id = Int(array[0])!
return query.filter(\.$id == id)
}
///Optional else if if there are multiple parameters in the call
///You must include an else for each call that has parameters
///Need to check the endpoint to get the right filter statements
///else if(x.count == 2){
/// let username = x[0]
/// let password = x[1]
/// return query.filter(\.$username == username).filter(\.$password == password)
///}
else{
throw Abort(.badRequest)
}
}
else{
return query
}
}
}


+ 19
- 0
Sources/App/configure.swift Vedi File

@@ -6,6 +6,14 @@ import Foundation

// configures your application
public func configure(_ app: Application) async throws {
switch app.environment{
case .testing:
app.passwords.use(.plaintext)
case .development:
app.passwords.use(.plaintext)
default:
app.passwords.use(.bcrypt)
}
// uncomment to serve files from /Public folder
app.middleware.use(CORSMiddleware())
let corsConfiguration = CORSMiddleware.Configuration(
@@ -31,6 +39,13 @@ public func configure(_ app: Application) async throws {
let timeout = HTTPClient.Configuration.Timeout(connect: .seconds(300), read: .seconds(300) )
app.http.client.configuration.timeout = timeout
app.migrations.add(mdlSysOfMeasure.Create())
app.migrations.add(mdlSysOfMeasure.Seed())
app.migrations.add(mdlSysCategory.Create())
app.migrations.add(mdlSysCategory.Seed())
app.migrations.add(mdlSysUOM.Create())
app.migrations.add(mdlSysUOM.Seed())

app.migrations.add(mdlCategory.Create())
app.migrations.add(mdlComparisonType.Create())
@@ -159,6 +174,10 @@ public func configure(_ app: Application) async throws {
//app.migrations.add(mdlInspection.Update())
app.migrations.add(mdlInspection.Mod3())
app.migrations.add(mdlInspectionCategory.Mod1())
app.migrations.add(mdlUser.Customer())
app.migrations.add(mdlLocale.Create())
app.migrations.add(mdlLocale.Seed())
app.migrations.add(mdlTblValue.Create())
app.logger.logLevel = .debug


+ 1
- 1
Sources/App/routes.swift Vedi File

@@ -11,7 +11,7 @@ func routes(_ app: Application) throws {
app.routes.caseInsensitive = true
app.routes.defaultMaxBodySize = "64mb";
let baseApp = app.grouped("api").grouped("v2.0")
let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String
_ = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String
baseApp.get { req async in
"Connexion Mobile Services Version 2.0"
}


Caricamento…
Annulla
Salva