// Generated by Create API
// https://github.com/CreateAPI/CreateAPI

import Foundation
import Get
import URLQueryEncoder

extension Paths.Marketplace.Projects.WithProjectId {
    public var reviews: Reviews {
        Reviews(path: path + "/reviews")
    }

    public struct Reviews {
        /// Path: `/api/marketplace/projects/{project_id}/reviews`
        public let path: String

        /// List Project Reviews
        ///
        /// List all reviews for a project.
        public var get: Request<Void> {
            Request(path: path, method: "GET", id: "studio_api_marketplace_api_list_project_reviews")
        }

        /// Create Review
        ///
        /// Create a review for a user after project completion.
        public func post(rating: Int, feedback: String? = nil) -> Request<Void> {
            Request(path: path, method: "POST", query: makePostQuery(rating, feedback), id: "studio_api_marketplace_api_create_review")
        }

        private func makePostQuery(_ rating: Int, _ feedback: String?) -> [(String, String?)] {
            let encoder = URLQueryEncoder()
            encoder.encode(rating, forKey: "rating")
            encoder.encode(feedback, forKey: "feedback")
            return encoder.items
        }
    }
}
