mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 06:22:25 -05:00 
			
		
		
		
	[bugfix] Fix Swagger spec and add test script (#2698)
* Add Swagger spec test script * Fix Swagger spec errors not related to statuses with polls * Add API tests that post a status with a poll * Fix creating a status with a poll from form params * Fix Swagger spec errors related to statuses with polls (this is the last error) * Fix Swagger spec warnings not related to unused definitions * Suppress a duplicate list update params definition that was somehow causing wrong param names * Add Swagger test to CI - updates Drone config - vendorizes go-swagger - fixes a file extension issue that caused the test script to generate JSON instead of YAML with the vendorized version * Put `Sample: ` on its own line everywhere * Remove unused id param from emojiCategoriesGet * Add 5 more pairs of profile fields to account update API Swagger * Remove Swagger prefix from dummy fields It makes the generated code look weird * Manually annotate params for statusCreate operation * Fix all remaining Swagger spec warnings - Change some models into operation parameters - Ignore models that already correspond to manually documented operation parameters but can't be trivially changed (those with file fields) * Documented that creating a status with scheduled_at isn't implemented yet * sign drone.yml * Fix filter API Swagger errors * fixup! Fix filter API Swagger errors --------- Co-authored-by: tobi <tobi.smethurst@protonmail.com>
This commit is contained in:
		
					parent
					
						
							
								68c8fe67cc
							
						
					
				
			
			
				commit
				
					
						fc3741365c
					
				
			
		
					 672 changed files with 135624 additions and 713 deletions
				
			
		
							
								
								
									
										141
									
								
								vendor/go.mongodb.org/mongo-driver/bson/decoder.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								vendor/go.mongodb.org/mongo-driver/bson/decoder.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,141 @@ | |||
| // Copyright (C) MongoDB, Inc. 2017-present. | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); you may | ||||
| // not use this file except in compliance with the License. You may obtain | ||||
| // a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 | ||||
| 
 | ||||
| package bson | ||||
| 
 | ||||
| import ( | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"reflect" | ||||
| 	"sync" | ||||
| 
 | ||||
| 	"go.mongodb.org/mongo-driver/bson/bsoncodec" | ||||
| 	"go.mongodb.org/mongo-driver/bson/bsonrw" | ||||
| ) | ||||
| 
 | ||||
| // ErrDecodeToNil is the error returned when trying to decode to a nil value | ||||
| var ErrDecodeToNil = errors.New("cannot Decode to nil value") | ||||
| 
 | ||||
| // This pool is used to keep the allocations of Decoders down. This is only used for the Marshal* | ||||
| // methods and is not consumable from outside of this package. The Decoders retrieved from this pool | ||||
| // must have both Reset and SetRegistry called on them. | ||||
| var decPool = sync.Pool{ | ||||
| 	New: func() interface{} { | ||||
| 		return new(Decoder) | ||||
| 	}, | ||||
| } | ||||
| 
 | ||||
| // A Decoder reads and decodes BSON documents from a stream. It reads from a bsonrw.ValueReader as | ||||
| // the source of BSON data. | ||||
| type Decoder struct { | ||||
| 	dc bsoncodec.DecodeContext | ||||
| 	vr bsonrw.ValueReader | ||||
| 
 | ||||
| 	// We persist defaultDocumentM and defaultDocumentD on the Decoder to prevent overwriting from | ||||
| 	// (*Decoder).SetContext. | ||||
| 	defaultDocumentM bool | ||||
| 	defaultDocumentD bool | ||||
| } | ||||
| 
 | ||||
| // NewDecoder returns a new decoder that uses the DefaultRegistry to read from vr. | ||||
| func NewDecoder(vr bsonrw.ValueReader) (*Decoder, error) { | ||||
| 	if vr == nil { | ||||
| 		return nil, errors.New("cannot create a new Decoder with a nil ValueReader") | ||||
| 	} | ||||
| 
 | ||||
| 	return &Decoder{ | ||||
| 		dc: bsoncodec.DecodeContext{Registry: DefaultRegistry}, | ||||
| 		vr: vr, | ||||
| 	}, nil | ||||
| } | ||||
| 
 | ||||
| // NewDecoderWithContext returns a new decoder that uses DecodeContext dc to read from vr. | ||||
| func NewDecoderWithContext(dc bsoncodec.DecodeContext, vr bsonrw.ValueReader) (*Decoder, error) { | ||||
| 	if dc.Registry == nil { | ||||
| 		dc.Registry = DefaultRegistry | ||||
| 	} | ||||
| 	if vr == nil { | ||||
| 		return nil, errors.New("cannot create a new Decoder with a nil ValueReader") | ||||
| 	} | ||||
| 
 | ||||
| 	return &Decoder{ | ||||
| 		dc: dc, | ||||
| 		vr: vr, | ||||
| 	}, nil | ||||
| } | ||||
| 
 | ||||
| // Decode reads the next BSON document from the stream and decodes it into the | ||||
| // value pointed to by val. | ||||
| // | ||||
| // The documentation for Unmarshal contains details about of BSON into a Go | ||||
| // value. | ||||
| func (d *Decoder) Decode(val interface{}) error { | ||||
| 	if unmarshaler, ok := val.(Unmarshaler); ok { | ||||
| 		// TODO(skriptble): Reuse a []byte here and use the AppendDocumentBytes method. | ||||
| 		buf, err := bsonrw.Copier{}.CopyDocumentToBytes(d.vr) | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 		return unmarshaler.UnmarshalBSON(buf) | ||||
| 	} | ||||
| 
 | ||||
| 	rval := reflect.ValueOf(val) | ||||
| 	switch rval.Kind() { | ||||
| 	case reflect.Ptr: | ||||
| 		if rval.IsNil() { | ||||
| 			return ErrDecodeToNil | ||||
| 		} | ||||
| 		rval = rval.Elem() | ||||
| 	case reflect.Map: | ||||
| 		if rval.IsNil() { | ||||
| 			return ErrDecodeToNil | ||||
| 		} | ||||
| 	default: | ||||
| 		return fmt.Errorf("argument to Decode must be a pointer or a map, but got %v", rval) | ||||
| 	} | ||||
| 	decoder, err := d.dc.LookupDecoder(rval.Type()) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if d.defaultDocumentM { | ||||
| 		d.dc.DefaultDocumentM() | ||||
| 	} | ||||
| 	if d.defaultDocumentD { | ||||
| 		d.dc.DefaultDocumentD() | ||||
| 	} | ||||
| 	return decoder.DecodeValue(d.dc, d.vr, rval) | ||||
| } | ||||
| 
 | ||||
| // Reset will reset the state of the decoder, using the same *DecodeContext used in | ||||
| // the original construction but using vr for reading. | ||||
| func (d *Decoder) Reset(vr bsonrw.ValueReader) error { | ||||
| 	d.vr = vr | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // SetRegistry replaces the current registry of the decoder with r. | ||||
| func (d *Decoder) SetRegistry(r *bsoncodec.Registry) error { | ||||
| 	d.dc.Registry = r | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // SetContext replaces the current registry of the decoder with dc. | ||||
| func (d *Decoder) SetContext(dc bsoncodec.DecodeContext) error { | ||||
| 	d.dc = dc | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // DefaultDocumentM will decode empty documents using the primitive.M type. This behavior is restricted to data typed as | ||||
| // "interface{}" or "map[string]interface{}". | ||||
| func (d *Decoder) DefaultDocumentM() { | ||||
| 	d.defaultDocumentM = true | ||||
| } | ||||
| 
 | ||||
| // DefaultDocumentD will decode empty documents using the primitive.D type. This behavior is restricted to data typed as | ||||
| // "interface{}" or "map[string]interface{}". | ||||
| func (d *Decoder) DefaultDocumentD() { | ||||
| 	d.defaultDocumentD = true | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue