//DBGet get resource from a db. func DBGet(tx transaction.Transaction, schemaID string, id string, tenantID string) (map[string]interface{}, error) { manager := schema.GetManager() schemaObj, ok := manager.Schema(schemaID) if !ok { return nil, fmt.Errorf("Schema %s not found", schemaID) } var tenantFilter []string if tenantID != "" { tenantFilter = []string{tenantID} } resp, err := tx.Fetch(schemaObj, id, tenantFilter) if err != nil { return nil, err } return resp.Data(), err }
//GohanDbFetch gets resource from database func GohanDbFetch(tx transaction.Transaction, schemaID, ID, tenantID string) (*schema.Resource, error) { schema, err := getSchema(schemaID) if err != nil { return nil, err } filter := transaction.IDFilter(ID) if tenantID != "" { filter["tenant_id"] = tenantID } resp, err := tx.Fetch(schema, filter) if err != nil { return nil, fmt.Errorf("Error during gohan_db_fetch: %s", err.Error()) } return resp, nil }
//GohanDbFetch gets resource from database func GohanDbFetch(transaction transaction.Transaction, schemaID, ID, tenantID string) (*schema.Resource, error) { schema, err := getSchema(schemaID) if err != nil { return nil, err } var tenantFilter []string if tenantID != "" { tenantFilter = []string{tenantID} } resp, err := transaction.Fetch(schema, ID, tenantFilter) if err != nil { return nil, fmt.Errorf("Error during gohan_db_fetch: %s", err.Error()) } return resp, nil }
} _, _, err := tx.List(networkSchema, filter, nil) Expect(err).To(HaveOccurred()) }) It("Shows related resources", func() { list, num, err := tx.List(serverSchema, nil, nil) Expect(err).ToNot(HaveOccurred()) Expect(num).To(Equal(uint64(1))) Expect(list).To(HaveLen(1)) Expect(list[0].Data()).To(HaveKeyWithValue("network", HaveKeyWithValue("name", networkResource1.Data()["name"]))) Expect(tx.Commit()).To(Succeed()) }) It("Fetches an existing resource", func() { networkResourceFetched, err := tx.Fetch(networkSchema, transaction.IDFilter(networkResource1.ID())) Expect(err).ToNot(HaveOccurred()) Expect(networkResourceFetched).To(util.MatchAsJSON(networkResource1)) Expect(tx.Commit()).To(Succeed()) }) It("Updates the resource properly", func() { By("Not allowing to update some fields") Expect(networkResource1.Update(map[string]interface{}{"id": "new_id"})).ToNot(Succeed()) By("Updating other fields") Expect(networkResource1.Update(map[string]interface{}{"name": "new_name"})).To(Succeed()) Expect(tx.Update(networkResource1)).To(Succeed()) Expect(tx.Commit()).To(Succeed()) })
} _, _, err := tx.List(networkSchema, filter, nil) Expect(err).To(HaveOccurred()) }) It("Shows related resources", func() { list, num, err := tx.List(serverSchema, nil, nil) Expect(err).ToNot(HaveOccurred()) Expect(num).To(Equal(uint64(1))) Expect(list).To(HaveLen(1)) Expect(list[0].Data()).To(HaveKeyWithValue("network", HaveKeyWithValue("name", networkResource1.Data()["name"]))) Expect(tx.Commit()).To(Succeed()) }) It("Fetches an existing resource", func() { networkResourceFetched, err := tx.Fetch(networkSchema, networkResource1.ID(), nil) Expect(err).ToNot(HaveOccurred()) Expect(networkResourceFetched).To(util.MatchAsJSON(networkResource1)) Expect(tx.Commit()).To(Succeed()) }) It("Updates the resource properly", func() { By("Not allowing to update some fields") Expect(networkResource1.Update(map[string]interface{}{"id": "new_id"})).ToNot(Succeed()) By("Updating other fields") Expect(networkResource1.Update(map[string]interface{}{"name": "new_name"})).To(Succeed()) Expect(tx.Update(networkResource1)).To(Succeed()) Expect(tx.Commit()).To(Succeed()) })