func delete()

in Sources/PackageRegistryExample/DataAccess/Postgres/PackageReleasesDAO+Postgres.swift [103:127]


        func delete(package: PackageIdentity, version: Version) async throws {
            let packageRelease = try await self.fetch(package: package, version: version)

            guard packageRelease.status != PackageRegistryModel.PackageRelease.Status.deleted.rawValue else {
                throw DataAccessError.noChange
            }

            try await self.connectionPool.withConnectionThrowing { connection in
                let packageRelease = PackageRelease(scope: packageRelease.scope,
                                                    name: packageRelease.name,
                                                    version: packageRelease.version,
                                                    repository_url: packageRelease.repository_url,
                                                    commit_hash: packageRelease.commit_hash,
                                                    status: PackageRegistryModel.PackageRelease.Status.deleted.rawValue,
                                                    created_at: packageRelease.created_at,
                                                    updated_at: Date())
                try await connection.update(Self.tableName)
                    .set(model: packageRelease)
                    // `packageRelease` holds actual database values, so there's no need to worry about case-insensitivity
                    .where("scope", .equal, SQLBind(packageRelease.scope))
                    .where("name", .equal, SQLBind(packageRelease.name))
                    .where("version", .equal, SQLBind(packageRelease.version))
                    .run()
            }
        }