Started to work on queries
This commit is contained in:
10
main.go
10
main.go
@@ -5,7 +5,6 @@ import (
|
||||
"fmt"
|
||||
// "os"
|
||||
|
||||
"git.cems.dev/cdricms/bdooc/parsing"
|
||||
"git.cems.dev/cdricms/bdooc/proto"
|
||||
// "git.cems.dev/cdricms/bdooc/parsing"
|
||||
)
|
||||
@@ -36,7 +35,10 @@ func main() {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
employees := parsing.MapFromProtoList(data)
|
||||
fmt.Println(employees[:2])
|
||||
|
||||
result, err := data.QueryEmployeesByColumn(proto.FieldYearsOfService, "2.48")
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
fmt.Println(result, len(result))
|
||||
}
|
||||
|
||||
100
proto/queries.go
Normal file
100
proto/queries.go
Normal file
@@ -0,0 +1,100 @@
|
||||
package proto
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
)
|
||||
|
||||
type EmployeeField string
|
||||
|
||||
const (
|
||||
FieldEmpID EmployeeField = "EmpId"
|
||||
FieldNamePrefix = "NamePrefix"
|
||||
FieldFirstName = "FirstName"
|
||||
FieldMiddleInitial = "MiddleInitial"
|
||||
FieldLastName = "LastName"
|
||||
FieldGender = "Gender"
|
||||
FieldEmail = "Email"
|
||||
FieldFathersName = "FathersName"
|
||||
FieldMothersName = "MothersName"
|
||||
FieldMothersMaidenName = "MothersMaidenName"
|
||||
FieldBirthdate = "Birthdate"
|
||||
FieldBirthTime = "BirthTime"
|
||||
FieldWeightKg = "WeightKg"
|
||||
FieldJoiningDate = "JoiningDate"
|
||||
FieldJoiningQuarter = "JoiningQuarter"
|
||||
FieldJoiningHalf = "JoiningHalf"
|
||||
FieldJoiningYear = "JoiningYear"
|
||||
FieldJoiningMonth = "JoiningMonth"
|
||||
FieldJoiningMonthName = "JoiningMonthName"
|
||||
FieldJoiningMonthNameShort = "JoiningMonthNameShort"
|
||||
FieldJoiningMonthDay = "JoiningMonthDay"
|
||||
FieldJoiningWeekDay = "JoiningWeekDay"
|
||||
FieldJoiningWeekDayShort = "JoiningWeekDayShort"
|
||||
FieldYearsOfService = "YearsOfService"
|
||||
FieldSalary = "Salary"
|
||||
FieldLatestHikePercentage = "LatestHikePercentage"
|
||||
FieldSsn = "Ssn"
|
||||
FieldPhoneNumber = "PhoneNumber"
|
||||
FieldPlaceName = "PlaceName"
|
||||
FieldCounty = "County"
|
||||
FieldCity = "City"
|
||||
FieldState = "State"
|
||||
FieldZip = "Zip"
|
||||
FieldRegion = "Region"
|
||||
FieldUsername = "Username"
|
||||
FieldPassword = "Password"
|
||||
)
|
||||
|
||||
func (e *Employee) Copy() Employee {
|
||||
return Employee{
|
||||
EmpId: e.GetEmpId(),
|
||||
NamePrefix: e.GetNamePrefix(),
|
||||
FirstName: e.GetFirstName(),
|
||||
MiddleInitial: e.GetMiddleInitial(),
|
||||
LastName: e.GetLastName(),
|
||||
Gender: e.GetGender(),
|
||||
Email: e.GetEmail(),
|
||||
FathersName: e.GetFathersName(),
|
||||
MothersName: e.GetMothersName(),
|
||||
MothersMaidenName: e.GetMothersMaidenName(),
|
||||
Birthdate: e.GetBirthdate(),
|
||||
BirthTime: e.GetBirthTime(),
|
||||
WeightKg: e.GetWeightKg(),
|
||||
JoiningDate: e.GetJoiningDate(),
|
||||
JoiningQuarter: e.GetJoiningQuarter(),
|
||||
JoiningHalf: e.GetJoiningHalf(),
|
||||
JoiningYear: e.GetJoiningYear(),
|
||||
JoiningMonth: e.GetJoiningMonth(),
|
||||
JoiningMonthName: e.GetJoiningMonthName(),
|
||||
JoiningMonthNameShort: e.GetJoiningMonthNameShort(),
|
||||
JoiningMonthDay: e.GetJoiningMonthDay(),
|
||||
JoiningWeekDay: e.GetJoiningWeekDay(),
|
||||
JoiningWeekDayShort: e.GetJoiningWeekDayShort(),
|
||||
YearsOfService: e.GetYearsOfService(),
|
||||
Salary: e.GetSalary(),
|
||||
LatestHikePercentage: e.GetLatestHikePercentage(),
|
||||
Ssn: e.GetSsn(),
|
||||
PhoneNumber: e.GetPhoneNumber(),
|
||||
PlaceName: e.GetPlaceName(),
|
||||
County: e.GetCounty(),
|
||||
City: e.GetCity(),
|
||||
State: e.GetState(),
|
||||
Zip: e.GetZip(),
|
||||
Region: e.GetRegion(),
|
||||
Username: e.GetUsername(),
|
||||
Password: e.GetPassword(),
|
||||
}
|
||||
}
|
||||
|
||||
func (el *EmployeeList) QueryEmployeesByColumn(column EmployeeField, query string) ([]*Employee, error) {
|
||||
employees := make([]*Employee, 0)
|
||||
|
||||
for _, employee := range el.GetEmployees() {
|
||||
value := reflect.ValueOf(employee).Elem().FieldByName(string(column))
|
||||
if value.String() == query {
|
||||
employees = append(employees, employee)
|
||||
}
|
||||
}
|
||||
|
||||
return employees, nil
|
||||
}
|
||||
Reference in New Issue
Block a user