mirror of
https://codeberg.org/superseriousbusiness/gotosocial.git
synced 2024-12-30 21:08:18 +03:00
fc3741365c
* 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>
78 lines
2.5 KiB
Go
78 lines
2.5 KiB
Go
// 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 bsonrw
|
|
|
|
import (
|
|
"go.mongodb.org/mongo-driver/bson/bsontype"
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
// ArrayWriter is the interface used to create a BSON or BSON adjacent array.
|
|
// Callers must ensure they call WriteArrayEnd when they have finished creating
|
|
// the array.
|
|
type ArrayWriter interface {
|
|
WriteArrayElement() (ValueWriter, error)
|
|
WriteArrayEnd() error
|
|
}
|
|
|
|
// DocumentWriter is the interface used to create a BSON or BSON adjacent
|
|
// document. Callers must ensure they call WriteDocumentEnd when they have
|
|
// finished creating the document.
|
|
type DocumentWriter interface {
|
|
WriteDocumentElement(string) (ValueWriter, error)
|
|
WriteDocumentEnd() error
|
|
}
|
|
|
|
// ValueWriter is the interface used to write BSON values. Implementations of
|
|
// this interface handle creating BSON or BSON adjacent representations of the
|
|
// values.
|
|
type ValueWriter interface {
|
|
WriteArray() (ArrayWriter, error)
|
|
WriteBinary(b []byte) error
|
|
WriteBinaryWithSubtype(b []byte, btype byte) error
|
|
WriteBoolean(bool) error
|
|
WriteCodeWithScope(code string) (DocumentWriter, error)
|
|
WriteDBPointer(ns string, oid primitive.ObjectID) error
|
|
WriteDateTime(dt int64) error
|
|
WriteDecimal128(primitive.Decimal128) error
|
|
WriteDouble(float64) error
|
|
WriteInt32(int32) error
|
|
WriteInt64(int64) error
|
|
WriteJavascript(code string) error
|
|
WriteMaxKey() error
|
|
WriteMinKey() error
|
|
WriteNull() error
|
|
WriteObjectID(primitive.ObjectID) error
|
|
WriteRegex(pattern, options string) error
|
|
WriteString(string) error
|
|
WriteDocument() (DocumentWriter, error)
|
|
WriteSymbol(symbol string) error
|
|
WriteTimestamp(t, i uint32) error
|
|
WriteUndefined() error
|
|
}
|
|
|
|
// ValueWriterFlusher is a superset of ValueWriter that exposes functionality to flush to the underlying buffer.
|
|
type ValueWriterFlusher interface {
|
|
ValueWriter
|
|
Flush() error
|
|
}
|
|
|
|
// BytesWriter is the interface used to write BSON bytes to a ValueWriter.
|
|
// This interface is meant to be a superset of ValueWriter, so that types that
|
|
// implement ValueWriter may also implement this interface.
|
|
type BytesWriter interface {
|
|
WriteValueBytes(t bsontype.Type, b []byte) error
|
|
}
|
|
|
|
// SliceWriter allows a pointer to a slice of bytes to be used as an io.Writer.
|
|
type SliceWriter []byte
|
|
|
|
func (sw *SliceWriter) Write(p []byte) (int, error) {
|
|
written := len(p)
|
|
*sw = append(*sw, p...)
|
|
return written, nil
|
|
}
|