Skip to content

Commit

Permalink
Always use pointers for APIDefinition
Browse files Browse the repository at this point in the history
Similar to the previous commit.

Updates #368.
  • Loading branch information
mvdan authored and lonelycode committed Jan 17, 2017
1 parent caf0352 commit 7f1a442
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 20 deletions.
7 changes: 3 additions & 4 deletions api.go
Original file line number Diff line number Diff line change
Expand Up @@ -618,8 +618,7 @@ func HandleGetAPIList() ([]byte, int) {
var responseMessage []byte
var err error

var thisAPIIDList []tykcommon.APIDefinition
thisAPIIDList = make([]tykcommon.APIDefinition, len(*ApiSpecRegister))
thisAPIIDList := make([]*tykcommon.APIDefinition, len(*ApiSpecRegister))

c := 0
for _, apiSpec := range *ApiSpecRegister {
Expand Down Expand Up @@ -675,10 +674,10 @@ func HandleAddOrUpdateApi(APIID string, r *http.Request) ([]byte, int) {
success := true
decoder := json.NewDecoder(r.Body)
var responseMessage []byte
var newDef tykcommon.APIDefinition
newDef := &tykcommon.APIDefinition{}
code := 200

if err := decoder.Decode(&newDef); err != nil {
if err := decoder.Decode(newDef); err != nil {
log.Error("Couldn't decode new API Definition object: ", err)
success = false
return createError("Request malformed"), 400
Expand Down
19 changes: 9 additions & 10 deletions api_definition_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ type ExtendedCircuitBreakerMeta struct {
// APISpec represents a path specification for an API, to avoid enumerating multiple nested lists, a single
// flattened URL list is checked for matching paths and then it's status evaluated if found.
type APISpec struct {
tykcommon.APIDefinition
*tykcommon.APIDefinition

RxPaths map[string][]URLSpec
WhiteListEnabled map[string]bool
Expand Down Expand Up @@ -148,7 +148,7 @@ var ServiceNonce string

// MakeSpec will generate a flattened URLSpec from and APIDefinitions' VersionInfo data. paths are
// keyed to the Api version name, which is determined during routing to speed up lookups
func (a *APIDefinitionLoader) MakeSpec(thisAppConfig tykcommon.APIDefinition) *APISpec {
func (a *APIDefinitionLoader) MakeSpec(thisAppConfig *tykcommon.APIDefinition) *APISpec {
newAppSpec := &APISpec{}
newAppSpec.APIDefinition = thisAppConfig

Expand Down Expand Up @@ -284,7 +284,7 @@ func (a *APIDefinitionLoader) LoadDefinitionsFromDashboardService(endpoint strin
// Extract tagged APIs#

type ResponseStruct struct {
ApiDefinition tykcommon.APIDefinition `bson:"api_definition" json:"api_definition"`
ApiDefinition *tykcommon.APIDefinition `bson:"api_definition" json:"api_definition"`
}
type NodeResponseOK struct {
Status string
Expand All @@ -310,12 +310,11 @@ func (a *APIDefinitionLoader) LoadDefinitionsFromDashboardService(endpoint strin
}

// Extract tagged entries only
APIDefinitions := make([]tykcommon.APIDefinition, 0)
APIDefinitions := make([]*tykcommon.APIDefinition, 0)

if config.DBAppConfOptions.NodeIsSegmented {
APIDefinitions = make([]tykcommon.APIDefinition, 0)
tagList := make(map[string]bool)
toLoad := make(map[string]tykcommon.APIDefinition)
toLoad := make(map[string]*tykcommon.APIDefinition)

for _, mt := range config.DBAppConfOptions.Tags {
tagList[mt] = true
Expand Down Expand Up @@ -383,7 +382,7 @@ func (a *APIDefinitionLoader) LoadDefinitionsFromRPC(orgId string) *[]*APISpec {
func (a *APIDefinitionLoader) processRPCDefinitions(apiCollection string) *[]*APISpec {
var APISpecs = []*APISpec{}

var APIDefinitions = []tykcommon.APIDefinition{}
var APIDefinitions = []*tykcommon.APIDefinition{}
var StringDefs = make([]map[string]interface{}, 0)

jErr1 := json.Unmarshal([]byte(apiCollection), &APIDefinitions)
Expand Down Expand Up @@ -420,9 +419,9 @@ func (a *APIDefinitionLoader) processRPCDefinitions(apiCollection string) *[]*AP
return &APISpecs
}

func (a *APIDefinitionLoader) ParseDefinition(apiDef []byte) (tykcommon.APIDefinition, map[string]interface{}) {
thisAppConfig := tykcommon.APIDefinition{}
if err := json.Unmarshal(apiDef, &thisAppConfig); err != nil {
func (a *APIDefinitionLoader) ParseDefinition(apiDef []byte) (*tykcommon.APIDefinition, map[string]interface{}) {
thisAppConfig := &tykcommon.APIDefinition{}
if err := json.Unmarshal(apiDef, thisAppConfig); err != nil {
log.Error("[RPC] --> Couldn't unmarshal api configuration")
log.Error(err)
}
Expand Down
8 changes: 4 additions & 4 deletions command_mode.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,13 +91,13 @@ func handleBluePrintMode(arguments map[string]interface{}) {
log.Error("onversion into API Def failed: ", err)
}

insertErr := bp.InsertIntoAPIDefinitionAsVersion(versionData, &thisDefFromFile, versionName.(string))
insertErr := bp.InsertIntoAPIDefinitionAsVersion(versionData, thisDefFromFile, versionName.(string))
if insertErr != nil {
log.Error("Insertion failed: ", insertErr)
return
}

printDef(&thisDefFromFile)
printDef(thisDefFromFile)

}
}
Expand Down Expand Up @@ -162,8 +162,8 @@ func bluePrintLoadFile(filePath string) (*BluePrintAST, error) {
return thisBlueprint.(*BluePrintAST), nil
}

func apiDefLoadFile(filePath string) (tykcommon.APIDefinition, error) {
thisDef := tykcommon.APIDefinition{}
func apiDefLoadFile(filePath string) (*tykcommon.APIDefinition, error) {
thisDef := &tykcommon.APIDefinition{}

defFileData, err := ioutil.ReadFile(filePath)

Expand Down
4 changes: 2 additions & 2 deletions swagger.go
Original file line number Diff line number Diff line change
Expand Up @@ -196,13 +196,13 @@ func handleSwaggerMode(arguments map[string]interface{}) {
log.Error("Conversion into API Def failed: ", err)
}

insertErr := s.InsertIntoAPIDefinitionAsVersion(versionData, &thisDefFromFile, versionName.(string))
insertErr := s.InsertIntoAPIDefinitionAsVersion(versionData, thisDefFromFile, versionName.(string))
if insertErr != nil {
log.Error("Insertion failed: ", insertErr)
return
}

printDef(&thisDefFromFile)
printDef(thisDefFromFile)

}
}
Expand Down

0 comments on commit 7f1a442

Please sign in to comment.