|
|
|
@ -33,18 +33,27 @@ func (cs *MongoSessionOptions) Model(value interface{}) *MongoSessionCollectionO
|
|
|
|
|
var sessionCollectionOptions *MongoSessionCollectionOptions
|
|
|
|
|
|
|
|
|
|
val := reflect.ValueOf(value)
|
|
|
|
|
if methodValue := val.MethodByName("DatabaseName"); methodValue.IsValid() {
|
|
|
|
|
databaseName := methodValue.Call(nil)[0].String()
|
|
|
|
|
|
|
|
|
|
methodDatabaseNameValue := val.MethodByName("DatabaseName")
|
|
|
|
|
if methodDatabaseNameValue.IsValid() {
|
|
|
|
|
databaseName := methodDatabaseNameValue.Call(nil)[0].String()
|
|
|
|
|
sessionDatabaseOptions = cs.Database(databaseName)
|
|
|
|
|
} else {
|
|
|
|
|
sessionDatabaseOptions = cs.Database(cs.configDatabaseName)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if methodValue := val.MethodByName("CollectionName"); methodValue.IsValid() {
|
|
|
|
|
collectionName := methodValue.Call(nil)[0].String()
|
|
|
|
|
methodCollectionNameValue := val.MethodByName("CollectionName")
|
|
|
|
|
if methodCollectionNameValue.IsValid() {
|
|
|
|
|
collectionName := methodCollectionNameValue.Call(nil)[0].String()
|
|
|
|
|
sessionCollectionOptions = sessionDatabaseOptions.Collection(collectionName)
|
|
|
|
|
} else {
|
|
|
|
|
panic(NoConfigCollectionName)
|
|
|
|
|
methodTableNameValue := val.MethodByName("TableName")
|
|
|
|
|
if methodTableNameValue.IsValid() {
|
|
|
|
|
collectionName := methodTableNameValue.Call(nil)[0].String()
|
|
|
|
|
sessionCollectionOptions = sessionDatabaseOptions.Collection(collectionName)
|
|
|
|
|
} else {
|
|
|
|
|
panic(NoConfigCollectionName)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return sessionCollectionOptions
|
|
|
|
|