in iot-onboarding-service/src/cloudrack-lambda-core/db/db.go [512:540]
func (dbc DBConfig) FindByGsi(value string, indexName string, indexPk string, data interface{}) error {
var queryInput = &dynamodb.QueryInput{
TableName: aws.String(dbc.TableName),
IndexName: aws.String(indexName),
KeyConditions: map[string]*dynamodb.Condition{
indexPk: {
ComparisonOperator: aws.String("EQ"),
AttributeValueList: []*dynamodb.AttributeValue{
{
S: aws.String(value),
},
},
},
},
}
var result, err = dbc.DbService.QueryWithContext(dbc.LambdaContext, queryInput)
if err != nil {
fmt.Println("NOT FOUND")
fmt.Println(err.Error())
return err
}
err = dynamodbattribute.UnmarshalListOfMaps(result.Items, data)
if err != nil {
panic(fmt.Sprintf("Failed to unmarshal Record, %v", err))
}
return err
}