func convertMongoError(err error) errors.Error { if mongoErr, ok := err.(*mgo.LastError); ok { if mongoErr.Code == 11000 { return buildMongoDuplicatedError() } } return errors.Wraps(err, 500) }
// NewItemSchemaFromReader return a new ItemSchema by an io.Reader. // return a error if the buffer not is valid. func NewItemSchemaFromReader(r io.Reader) (*ItemSchema, errors.Error) { itemSchema := &ItemSchema{} err := json.NewDecoder(r).Decode(itemSchema) if err != nil { return nil, errors.Wraps(err, 400) } itemSchema.fillDefaultValues() return itemSchema, itemSchema.validate() }
func (m *MongoDB) DeleteItemSchemaByCollectionName(collectionName string) errors.Error { session := m.session.Clone() defer session.Close() err := session.DB("").C(schemas.ItemSchemaCollectionName).RemoveId(collectionName) if err == mgo.ErrNotFound { return db.ItemSchemaNotFound } else if err != nil { return errors.Wraps(err, 500) } return nil }
func (m *MongoDB) FindItemSchemaByCollectionName(collectionName string) (*schemas.ItemSchema, errors.Error) { session := m.session.Clone() defer session.Close() itemSchema := &schemas.ItemSchema{} err := session.DB("").C(schemas.ItemSchemaCollectionName).FindId(collectionName).One(&itemSchema) if err == mgo.ErrNotFound { return nil, db.ItemSchemaNotFound } else if err != nil { return nil, errors.Wraps(err, 500) } return itemSchema, nil }
func (m *MongoDB) FindItemSchema(filter *db.Filter) (*db.ItemSchemasReply, errors.Error) { session := m.session.Clone() defer session.Close() where := BuildMongoWhere(filter.Where, schemas.ItemSchemaPrimaryKey) query := session.DB("").C(schemas.ItemSchemaCollectionName).Find(where) reply := &db.ItemSchemasReply{} reply.Items = []*schemas.ItemSchema{} err := query.Skip(filter.Skip()).Limit(filter.PerPage).Iter().All(&reply.Items) if err != nil { return nil, errors.Wraps(err, 500) } return reply, nil }
func (s *Server) findItemSchema(t *transaction.Transaction) { filter, err := db.NewFilterFromQueryString(t.Req.URL.RawQuery) if err != nil { t.WriteError(errors.Wraps(err, 400)) return } reply, findErr := s.DB.FindItemSchema(filter) if findErr != nil { t.WriteError(findErr) return } t.WriteResult(reply) }
func (m *MongoDB) FindOneItemSchema(filter *db.Filter) (*schemas.ItemSchema, errors.Error) { session := m.session.Clone() defer session.Close() where := BuildMongoWhere(filter.Where, schemas.ItemSchemaPrimaryKey) query := session.DB("").C(schemas.ItemSchemaCollectionName).Find(where) itemSchema := &schemas.ItemSchema{} err := query.One(&itemSchema) if err == mgo.ErrNotFound { return nil, db.ItemSchemaNotFound } else if err != nil { return nil, errors.Wraps(err, 500) } return itemSchema, nil }
func (s *Server) findOneItemSchema(t *transaction.Transaction) { filter, err := db.NewFilterFromQueryString(t.Req.URL.RawQuery) if err != nil { t.WriteError(errors.Wraps(err, 400)) return } itemSchema, findErr := s.DB.FindOneItemSchema(filter) if findErr != nil { t.WriteError(findErr) return } itemSchema.AttachDefaultLinks(t.BaseUrl()) t.WriteResult(itemSchema) }
func (s *Server) findItemSchema(t *transaction.Transaction) { filter, err := db.NewFilterFromQueryString(t.Req.URL.RawQuery) if err != nil { t.WriteError(errors.Wraps(err, 400)) return } reply, findErr := s.DB.FindItemSchema(filter) if findErr != nil { t.WriteError(findErr) return } baseUrl := t.BaseUrl() for _, itemSchema := range reply.Items { itemSchema.AttachDefaultLinks(baseUrl) } t.WriteResult(reply) }