             result["pictures"] = try pictures.makeNode(in: emptyContext)
         }
         
-        if let node = request.json?.node, let tags: [Int] = try node.extract("tags") {
+        if let tags: [Int] = try? node.extract("tags") {
         
             let tags = try tags.map { (id: Int) -> Tag? in
                 guard let tag = try Tag.find(id) else {

            return try JSON(result.makeNode(in: jsonContext))
        }
        
        if var campaignNode: Node = try node.extract("campaign") {
            campaignNode = try campaignNode.add(objects: ["maker_id" : request.maker().throwableId(), "product_id" : product.throwableId()])
            let campaign: Campaign = try Campaign(node: campaignNode, in: emptyContext)
            try campaign.save()

            result["campaign"] = try campaign.makeNode(in: emptyContext)
        }

        if let pictureNode: [Node] = try? node.extract("pictures") {

            let pictures = try pictureNode.map { (object: Node) -> ProductPicture in
                let context = ParentContext(parent_id: product_id)
