mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-10-30 18:47:51 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| module Linear::Mutations
 | |
|   def self.graphql_value(value)
 | |
|     case value
 | |
|     when String
 | |
|       # Strings must be enclosed in double quotes
 | |
|       "\"#{value.gsub("\n", '\\n')}\""
 | |
|     when Array
 | |
|       # Arrays need to be recursively converted
 | |
|       "[#{value.map { |v| graphql_value(v) }.join(', ')}]"
 | |
|     else
 | |
|       # Other types (numbers, booleans) can be directly converted to strings
 | |
|       value.to_s
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def self.graphql_input(input)
 | |
|     input.map { |key, value| "#{key}: #{graphql_value(value)}" }.join(', ')
 | |
|   end
 | |
| 
 | |
|   def self.issue_create(input)
 | |
|     <<~GRAPHQL
 | |
|       mutation {
 | |
|         issueCreate(input: { #{graphql_input(input)} }) {
 | |
|           success
 | |
|           issue {
 | |
|             id
 | |
|             title
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     GRAPHQL
 | |
|   end
 | |
| 
 | |
|   def self.issue_link(issue_id, link, title)
 | |
|     <<~GRAPHQL
 | |
|       mutation {
 | |
|         attachmentLinkURL(url: "#{link}", issueId: "#{issue_id}", title: "#{title}") {
 | |
|           success
 | |
|           attachment {
 | |
|             id
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     GRAPHQL
 | |
|   end
 | |
| 
 | |
|   def self.unlink_issue(link_id)
 | |
|     <<~GRAPHQL
 | |
|       mutation {
 | |
|         attachmentDelete(id: "#{link_id}") {
 | |
|           success
 | |
|         }
 | |
|       }
 | |
|     GRAPHQL
 | |
|   end
 | |
| end
 | 
