mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-30 19: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
				
			
		
							
								
								
									
										174
									
								
								vendor/github.com/Masterminds/sprig/v3/dict.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										174
									
								
								vendor/github.com/Masterminds/sprig/v3/dict.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,174 @@ | |||
| package sprig | ||||
| 
 | ||||
| import ( | ||||
| 	"github.com/imdario/mergo" | ||||
| 	"github.com/mitchellh/copystructure" | ||||
| ) | ||||
| 
 | ||||
| func get(d map[string]interface{}, key string) interface{} { | ||||
| 	if val, ok := d[key]; ok { | ||||
| 		return val | ||||
| 	} | ||||
| 	return "" | ||||
| } | ||||
| 
 | ||||
| func set(d map[string]interface{}, key string, value interface{}) map[string]interface{} { | ||||
| 	d[key] = value | ||||
| 	return d | ||||
| } | ||||
| 
 | ||||
| func unset(d map[string]interface{}, key string) map[string]interface{} { | ||||
| 	delete(d, key) | ||||
| 	return d | ||||
| } | ||||
| 
 | ||||
| func hasKey(d map[string]interface{}, key string) bool { | ||||
| 	_, ok := d[key] | ||||
| 	return ok | ||||
| } | ||||
| 
 | ||||
| func pluck(key string, d ...map[string]interface{}) []interface{} { | ||||
| 	res := []interface{}{} | ||||
| 	for _, dict := range d { | ||||
| 		if val, ok := dict[key]; ok { | ||||
| 			res = append(res, val) | ||||
| 		} | ||||
| 	} | ||||
| 	return res | ||||
| } | ||||
| 
 | ||||
| func keys(dicts ...map[string]interface{}) []string { | ||||
| 	k := []string{} | ||||
| 	for _, dict := range dicts { | ||||
| 		for key := range dict { | ||||
| 			k = append(k, key) | ||||
| 		} | ||||
| 	} | ||||
| 	return k | ||||
| } | ||||
| 
 | ||||
| func pick(dict map[string]interface{}, keys ...string) map[string]interface{} { | ||||
| 	res := map[string]interface{}{} | ||||
| 	for _, k := range keys { | ||||
| 		if v, ok := dict[k]; ok { | ||||
| 			res[k] = v | ||||
| 		} | ||||
| 	} | ||||
| 	return res | ||||
| } | ||||
| 
 | ||||
| func omit(dict map[string]interface{}, keys ...string) map[string]interface{} { | ||||
| 	res := map[string]interface{}{} | ||||
| 
 | ||||
| 	omit := make(map[string]bool, len(keys)) | ||||
| 	for _, k := range keys { | ||||
| 		omit[k] = true | ||||
| 	} | ||||
| 
 | ||||
| 	for k, v := range dict { | ||||
| 		if _, ok := omit[k]; !ok { | ||||
| 			res[k] = v | ||||
| 		} | ||||
| 	} | ||||
| 	return res | ||||
| } | ||||
| 
 | ||||
| func dict(v ...interface{}) map[string]interface{} { | ||||
| 	dict := map[string]interface{}{} | ||||
| 	lenv := len(v) | ||||
| 	for i := 0; i < lenv; i += 2 { | ||||
| 		key := strval(v[i]) | ||||
| 		if i+1 >= lenv { | ||||
| 			dict[key] = "" | ||||
| 			continue | ||||
| 		} | ||||
| 		dict[key] = v[i+1] | ||||
| 	} | ||||
| 	return dict | ||||
| } | ||||
| 
 | ||||
| func merge(dst map[string]interface{}, srcs ...map[string]interface{}) interface{} { | ||||
| 	for _, src := range srcs { | ||||
| 		if err := mergo.Merge(&dst, src); err != nil { | ||||
| 			// Swallow errors inside of a template. | ||||
| 			return "" | ||||
| 		} | ||||
| 	} | ||||
| 	return dst | ||||
| } | ||||
| 
 | ||||
| func mustMerge(dst map[string]interface{}, srcs ...map[string]interface{}) (interface{}, error) { | ||||
| 	for _, src := range srcs { | ||||
| 		if err := mergo.Merge(&dst, src); err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 	} | ||||
| 	return dst, nil | ||||
| } | ||||
| 
 | ||||
| func mergeOverwrite(dst map[string]interface{}, srcs ...map[string]interface{}) interface{} { | ||||
| 	for _, src := range srcs { | ||||
| 		if err := mergo.MergeWithOverwrite(&dst, src); err != nil { | ||||
| 			// Swallow errors inside of a template. | ||||
| 			return "" | ||||
| 		} | ||||
| 	} | ||||
| 	return dst | ||||
| } | ||||
| 
 | ||||
| func mustMergeOverwrite(dst map[string]interface{}, srcs ...map[string]interface{}) (interface{}, error) { | ||||
| 	for _, src := range srcs { | ||||
| 		if err := mergo.MergeWithOverwrite(&dst, src); err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 	} | ||||
| 	return dst, nil | ||||
| } | ||||
| 
 | ||||
| func values(dict map[string]interface{}) []interface{} { | ||||
| 	values := []interface{}{} | ||||
| 	for _, value := range dict { | ||||
| 		values = append(values, value) | ||||
| 	} | ||||
| 
 | ||||
| 	return values | ||||
| } | ||||
| 
 | ||||
| func deepCopy(i interface{}) interface{} { | ||||
| 	c, err := mustDeepCopy(i) | ||||
| 	if err != nil { | ||||
| 		panic("deepCopy error: " + err.Error()) | ||||
| 	} | ||||
| 
 | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func mustDeepCopy(i interface{}) (interface{}, error) { | ||||
| 	return copystructure.Copy(i) | ||||
| } | ||||
| 
 | ||||
| func dig(ps ...interface{}) (interface{}, error) { | ||||
| 	if len(ps) < 3 { | ||||
| 		panic("dig needs at least three arguments") | ||||
| 	} | ||||
| 	dict := ps[len(ps)-1].(map[string]interface{}) | ||||
| 	def := ps[len(ps)-2] | ||||
| 	ks := make([]string, len(ps)-2) | ||||
| 	for i := 0; i < len(ks); i++ { | ||||
| 		ks[i] = ps[i].(string) | ||||
| 	} | ||||
| 
 | ||||
| 	return digFromDict(dict, def, ks) | ||||
| } | ||||
| 
 | ||||
| func digFromDict(dict map[string]interface{}, d interface{}, ks []string) (interface{}, error) { | ||||
| 	k, ns := ks[0], ks[1:len(ks)] | ||||
| 	step, has := dict[k] | ||||
| 	if !has { | ||||
| 		return d, nil | ||||
| 	} | ||||
| 	if len(ns) == 0 { | ||||
| 		return step, nil | ||||
| 	} | ||||
| 	return digFromDict(step.(map[string]interface{}), d, ns) | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue